note.x

PV3D FrustumClipping and QuadrantRenderEngine issue

FrustumClipping と QuadrantRenderEngine が混在できないバグが未だにほったらかしっぽいので(Rev.942)、去年MLで流れてた対処法を紹介。とりあえず何とかしたい人向けTips。

FrustumClipping and QuadrantRenderEngine work together Demo(要:FlashPlayer9)

/core/dyn/DynamicTriangles.as の64行目以下

triangle.instance = object;
triangle.vertices = [v0, v1, v2];
triangle.uv = [uv0, uv1, uv2];
…

の部分を、以下のような感じに。

triangle.renderCommand.instance = object; //←この一行を追加
triangle.instance = object;
triangle.vertices = [v0, v1, v2];
triangle.uv = [uv0, uv1, uv2];
…

バカ正直に使うと当然負荷が大きくなるわけで、床面が真っ平らで良いならビットマップを透視投影した方が経済的だと思う。
QuadrantRenderEngine使用時は、通常のクリッピングの流れからバイパスして、視錘台の各平面と他のポリゴンとの交差をいっぺんに判定して分割、不可視部分を刈り取るようにすれば結構最適化できそうだけど、そこまでやるなら根本的なデータ構造含めて作り直したいっていう開発サイドの判断で放置されてるのかなぁ。


Trackback URL : http://blog.r3c7.net/as3-software-rendering/503/trackback/

Leave a Reply