使用PV3D的相量3D文字做的Fog效果
遠一點的文字,加入Blur和變亮
增加距離的層次感
最主要的程式碼是用下方的公式, 計算3D物件與camera的距離
說穿了就是用畢式定理來算距離的
遠一點的文字,加入Blur和變亮
增加距離的層次感
最主要的程式碼是用下方的公式, 計算3D物件與camera的距離
說穿了就是用畢式定理來算距離的
private function calcPointDistanceFromCamera(obj:DisplayObject3D):Number { var vecX:Number = obj.sceneX - view.camera.x; var vecY:Number = obj.sceneY - view.camera.y; var vecZ:Number = obj.sceneZ - view.camera.z; return Math.sqrt((vecX * vecX) + (vecY * vecY) + (vecZ * vecZ)); }
留言
不過像object3D.z = camera.focus * camera.zoom - Math.abs(camera.z);這樣的公式,真的很難想像為什麼用了以後,3D物件就能100%百出現在Flash裡?
不知道是否漏掉甚麼,請問本篇程式碼中
obj.sceneX,obj.sceneY,obj.sceneZ中的sceneX,sceneY,sceneZ是甚麼啊?謝謝!
這時候就需要用這樣的公式, 接起來才會順。
obj3d.sceneX
obj3d.sceneY
指的是該3D物件相對於Flash的座標
透過這個屬性, 就可以幫你將PV3D座標轉換成Flash的座標
而sceneZ
是直接得到該3D物件距離瑩目的值
因為有可能你的3D物件被包了很多層,
透過該屬性就可以直接得到