[英]How to use the lights in multi class in away3d 4.0 Beta?
I started in awayd3D and have not found a solution on a version 4.0beta, I can appeal to you. 我开始使用awayed3D,但尚未在4.0beta版本上找到解决方案,我可以吸引您。
I have done many research on the internet hoping to find an explanation of the use of lights but the few explanations related to each version 3. 我在互联网上做了很多研究,希望能找到有关灯光使用的解释,但很少有与每种版本3相关的解释。
I realize this scene (http://goupix.com/test/). 我意识到了这一幕(http://goupix.com/test/)。 You can use the WASD keys or arrow keys to move.
您可以使用WASD键或箭头键移动。
To achieve this scene, I have several files: Exploration.as: Creates the scene, the camera and light. 为了实现这个场景,我有几个文件:Exploration.as:创建场景,相机和灯光。 light:
光:
PointLight light = new ();
light.x = -2000;
light.y = 1000;
light.z = -1000;
light.color 0xffeeaa = / / Here, select the new color of the light source
view.scene.addChild (light);
ClassGeneratemap.as: uses a table generated for my decor ClassGenerateobjet.as: Called by ClassGeneratemap and place the elements in the scene ClassGeneratemap.as:使用为我的装饰生成的表ClassGenerateobjet.as:由ClassGeneratemap调用并将元素放置在场景中
public function onAssetComplete(event:AssetEvent):void {
if ( event.asset.assetType == AssetType.MESH && event.asset.assetNamespace == token ) {
AssetLibrary.removeEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete);
trace("position : " + posX + " : " + posY );
mesh = event.asset as Mesh;
mesh.geometry.scale(1);
mesh.x = -posX * instData.scale;
mesh.z = posY * instData.scale;
mesh.castsShadows = true ;
//trace("position : " + mesh.x + " : " + mesh.z );
instExploration.scene.addChild( mesh );
}//End If
}//End onAssetComplete
I really do not see how to use the light that I placed. 我真的看不到如何使用放置的光。 I do not know if indeed this is the right kind of light.
我不知道这的确是正确的光源。
I hope you can help me. 我希望你能帮助我。 Thank you
谢谢
Pulling examples from Away3d's GitHub would help. 从Away3d的GitHub提取示例将有所帮助。
https://github.com/away3d/away3d-examples-fp11 https://github.com/away3d/away3d-examples-fp11
/**
* Initialize the lights
*/
private function initLights():void
{
moonLight = new DirectionalLight();
moonLight.position = new Vector3D(3500, 4500, 10000); // Appear to come from the moon in the sky box.
moonLight.lookAt(new Vector3D(0, 0, 0));
moonLight.diffuse = 0.5;
moonLight.specular = 0.25;
moonLight.color = 0xFFFFFF;
scene.addChild(moonLight);
cameraLight = new PointLight();
cameraLight.diffuse = 0.25;
cameraLight.specular = 0.25;
cameraLight.color = 0xFFFFFF;
cameraLight.radius = 1000;
cameraLight.fallOff = 2000;
scene.addChild(cameraLight);
skyLight = new DirectionalLight();
skyLight.diffuse = 0.1;
skyLight.specular = 0.1;
skyLight.color = 0xFFFFFF;
scene.addChild(skyLight);
lightPicker = new StaticLightPicker([moonLight, cameraLight, skyLight]);
//create a global fog method
fogMethod = new FogMethod(0, 200000, 0x000000);
}
private function createTreeShadow(x:Number, z:Number):void
{
// Paint on the terrain's shadow blend layer
var matrix:Matrix = new Matrix();
var dx:Number = (x/terrainWidth + 0.5)*512 - 8;
var dy:Number = (-z/terrainDepth + 0.5)*512 - 8;
matrix.translate(dx, dy);
var treeShadowBitmapData = new BitmapData(16, 16, false, 0x0000FF);
treeShadowBitmapData.draw(createGradientSprite(16, 16, 0, 1), matrix);
blendBitmapData.draw(treeShadowBitmapData, matrix, null, BlendMode.ADD);
// Update the terrain.
blendTexture.bitmapData = blendBitmapData; // TODO: invalidation routine not active for blending texture
}
/**
* Initialize the material
*/
private function initMaterials():void
{
//create skybox texture
cubeTexture = new BitmapCubeTexture(new EnvPosX().bitmapData, new EnvNegX().bitmapData, new EnvPosY().bitmapData, new EnvNegY().bitmapData, new EnvPosZ().bitmapData, new EnvNegZ().bitmapData);
//create tree material
trunkMaterial = new TextureMaterial(new BitmapTexture(new TrunkDiffuse().bitmapData));
trunkMaterial.normalMap = new BitmapTexture(new TrunkNormals().bitmapData);
trunkMaterial.specularMap = new BitmapTexture(new TrunkSpecular().bitmapData);
trunkMaterial.diffuseMethod = new BasicDiffuseMethod();
trunkMaterial.specularMethod = new BasicSpecularMethod();
trunkMaterial.addMethod(fogMethod);
trunkMaterial.lightPicker = lightPicker;
//create leaf material
leafMaterial = new TextureMaterial(new BitmapTexture(new LeafDiffuse().bitmapData));
leafMaterial.addMethod(fogMethod);
leafMaterial.lightPicker = lightPicker;
//create height map
heightMapData = new BitmapData(512, 512, false, 0x0);
heightMapData.perlinNoise(200, 200, 4, uint(1000*Math.random()), false, true, 7, true);
heightMapData.draw(createGradientSprite(512, 512, 1, 0));
//create terrain diffuse method
blendBitmapData = heightMapData.clone();
blendBitmapData.threshold(blendBitmapData, blendBitmapData.rect, destPoint, ">", 0x444444, 0xFF00FF00, 0xFFFFFF, true);
blendBitmapData.colorTransform(blendBitmapData.rect, new ColorTransform(1, 1, 1, 1, 255, 0, 0, 0));
blendBitmapData.applyFilter(blendBitmapData, blendBitmapData.rect, destPoint, new BlurFilter(16, 16, 3));
blendTexture = new BitmapTexture(blendBitmapData);
terrainMethod = new TerrainDiffuseMethod([new BitmapTexture(new Grass().bitmapData), new BitmapTexture(new Rock().bitmapData), new BitmapTexture(new BitmapData(512, 512, false, 0x000000))], blendTexture, [1, 20, 20, 1]);
//create terrain material
terrainMaterial = new TextureMaterial(new BitmapTexture(heightMapData));
terrainMaterial.diffuseMethod = terrainMethod;
terrainMaterial.addMethod(new FogMethod(0, 200000, 0x000000)); //TODO: global fog method affects splats when updated
terrainMaterial.lightPicker = lightPicker;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.