現在、ロードされた .obj ファイルのメッシュとして使用するために、Away3d 4 内に「フラットな」シェーディング ColorMaterial を作成しようとしています。
これは私が達成しようとしているもののスクリーンショットです。フラット シェーディング モデルは左側にあります。
Away で作業しているのと同じ .obj ファイルを、MeshLab というプログラムにロードしました。MeshLab のレンダリング モードには、フラットまたはスムーズの 2 つの設定があります。
左側がフラット レンダリング モード、右側がスムーズ レンダリング モードです。.obj を Away3D にロードすると、結果は MeshLab のスムーズ レンダリング モードとまったく同じように見えます。
フラットな結果を得るために、ColorMaterial のスムーズ フラグを false に設定しようとしましたが、何も変わらないようです。 http://away3d.com/livedocs/away3d/4.0/away3d/materials/MaterialBase.html
ShadingMethodBase で滑らかなブール値を見つけることができたので、マテリアルの shadowMethod を調べ始めていますが、これがこれを処理する場所であるかどうかは正直わかりません。
http://away3d.com/livedocs/away3d/4.0/away3d/materials/DefaultMaterialBase.html#shadowMethod http://away3d.com/livedocs/away3d/4.0/away3d/materials/methods/ShadingMethodBase.html
以下は、ライトとライト ピッカーを作成するためのコードです。
dL = new DirectionalLight();
dL.diffuse = 20;
dL.ambient=.6;
dL.specular=15
scene.addChild(dL);
lightPicker= new StaticLightPicker([dL]);
dL.direction = new Vector3D(0,1,-2);
そして、これは私の資料です。私はそのほとんどのプロパティをいじってみました:
primitiveMaterial = new ColorMaterial(0xcccccc);
primitiveMaterial.smooth = false;
primitiveMaterial.bothSides = false;
//primitiveMaterial.gloss = 800;
//primitiveMaterial.diffuseLightSources = LightSources.LIGHTS;
primitiveMaterial.diffuseMethod.alphaThreshold = .3;
primitiveMaterial.ambient =.2;
primitiveMaterial.lightPicker=lightPicker;
誰かが私を正しい方向に向けるのを手伝ってくれますか?
ありがとう!