there is no source available for this one (was made during dev and would almost
certainly fail to compile anyway)
but here's the snippet
var bump:BitmapData = generateFromLib("bumpsource");
var colorsource:BitmapData =
generateFromLib("colorsource");
sphere = new Sphere({radius:3000, segmentsH:10,
segmentsW:10, material:null});
(sphere as Mesh).pushback = true;
var num:NormalUVModifier = new NormalUVModifier(sphere,
bump, "av", 255);
num.update(-1.2);
num.apply(true);
var mapgen:NormalMapGenerator = new
NormalMapGenerator(sphere, 1200, 1200, bump, 4, 100);
mapgen.addOnTraceProgress(traceProgress);
mapgen.addOnTraceComplete(traceComplete);
var mat:Dot3BitmapMaterial = new
Dot3BitmapMaterial(colorsource, mapgen.normalmap, {tangentSpace:false});
(sphere as Mesh).material = mat;
maincontainer.addChild(sphere);
Prefab does all this for you...
Fabrice
On Jan 6, 2010, at 2:50 PM, Tiago Machado wrote:
> hi fabrice,
>
> I see the example. I think that it will help me to solve my problem.
> where can I found the source code of the application (http://
> www.closier.nl/playground/normalmaps2.html)?
>
> thx
>
> tiago.
>
> On Jan 5, 9:29 am, Tiago Machado <[email protected]> wrote:
>> hi fabrice,
>>
>> i returned to study with away3d now. thanks for your help, i'll will
>> run your examples and i'll try modified my application.
>> when i get results, i'll update this post.
>>
>> thx and happy new year!
>>
>> tiago.
>>
>> On Dec 18 2009, 5:39 pm, Fabrice3D <[email protected]> wrote:
>>
>>> you have lots of zero's in there...
>>
>>> but your first question was about having objects with 2 materials
>>> so does this means you want to map each sphere with a dark and a
>>> bright side?
>>
>>> Personally I would use normalmap+dot3material for this and use Prefab
>>> to render map with shadows off for the tracer.
>>> It can generate the normalmap for you as well, but since its a sphere
>>> a single small map can be generated runtime at very low cost (only
>>> once for all spheres).
>>> usingNormalMapGeneratoror NormalBumpMaker, both in materials.utils
>>
>>> here a year old example using this
>>> combohttp://www.closier.nl/playground/normalmaps2.html
>>
>>> if you want highly detailed map, Prefab can also raytrace it for you.
>>
>>> Fabrice
>>
>>> On Dec 18, 2009, at 5:22 PM, Tiago Machado wrote:
>>
>>>> Hi Fabrice,
>>
>>>> This is my code, I create two spheres to simulates the earth and the
>>>> moon, then I lighting these objects with a PointLight3D, but they are
>>>> seen with a flat aspect, I would like to have the same effect that I
>>>> have with the PointLight3D (the side towards to the sun lighting and
>>>> the other side dark), but with smooth objects.
>>
>>>> I tried used a PhongBitmapMaterial with DirectionalLight3D or
>>>> AmbientLight3D, although i didn“t reached a good result. In fact, the
>>>> objects can be seen in a smooth aspect with these lights and
>>>> materials, but we cannot see the lighting differences between the two
>>>> objects sides.
>>
>>>> Thanks.
>>
>>>> Tiago.
>>
>>>> package {
>>>> import away3d.containers.Scene3D;
>>>> import away3d.containers.View3D;
>>>> import away3d.core.math.Number3D;
>>>> import away3d.lights.AmbientLight3D;
>>>> import away3d.lights.PointLight3D;
>>>> import away3d.loaders.utils.MaterialLibrary;
>>>> import away3d.materials.BitmapMaterial;
>>>> import away3d.materials.IMaterial;
>>>> import away3d.materials.WhiteShadingBitmapMaterial;
>>>> import away3d.materials.utils.SimpleShadow;
>>>> import away3d.primitives.Sphere;
>>
>>>> import flash.display.Bitmap;
>>>> import flash.display.Sprite;
>>>> import flash.events.Event;
>>
>>>> [SWF(backgroundcolor = "#000000000")]
>>>> public class TesteLuz extends Sprite
>>>> {
>>>> private var light:PointLight3D;
>>>> private var sphere:Sphere;
>>>> private var sphere2:Sphere;
>>>> private var v:View3D;
>>
>>>> public function TesteLuz()
>>>> {
>>>> v = new View3D();
>>>> v.x = 200;
>>>> v.y = 230;
>>>> this.addChild(v);
>>>> v.scene = new Scene3D();
>>
>>>> //light
>>>> light = new PointLight3D({x:80, y:0, z:0, brightness:5,
>>>> ambient:30,
>>>> specular:180, diffuse:30});
>>>> v.scene.addChild(light);
>>>> light.visible = true;
>>
>>>> //earth sphere & white shadingg bitmap material
>>>> [Embed(source = "assets/earth.jpg")]
>>>> var Earth:Class;
>>
>>>> var earthBmp:Bitmap = new Earth() as Bitmap;
>>>> var earthMat:WhiteShadingBitmapMaterial = new
>>>> WhiteShadingBitmapMaterial(earthBmp.bitmapData);
>>>> earthMat.ambient_brightness = 0;
>>>> earthMat.diffuse_brightness = 1.7;
>>>> earthMat.specular_brightness = 0;
>>
>>>> sphere = new Sphere({radius:15, material:earthMat});
>>>> v.scene.addChild(sphere);
>>
>>>> //moon sphere & white shadingg bitmap material
>>>> [Embed(source = "assets/moon.jpg")]
>>>> var Moon:Class;
>>
>>>> var moonBmp:Bitmap = new Moon() as Bitmap;
>>>> var moonMat:WhiteShadingBitmapMaterial = new
>>>> WhiteShadingBitmapMaterial(moonBmp.bitmapData);
>>>> moonMat.ambient_brightness = 0;
>>>> moonMat.diffuse_brightness = 1.7;
>>>> moonMat.specular_brightness = 0;
>>
>>>> sphere2 = new Sphere({radius:5, material:moonMat, x:-60
>>>> });
>>>> v.scene.addChild(sphere2);
>>
>>>> v.render();
>>>> }
>>
>>>> }
>>>> }
>>
>>>> On Dec 17, 3:52 pm, Fabrice3D <[email protected]> wrote:
>>>>> Sure I wanna help you but in this case
>>>>> this is pretty much all you need...
>>
>>>>> Show your code snippet where things go wrong or do not work
>>>>> then I might be able to help you more.
>>
>>>>> Fabrice
>>
>>>>> On Dec 17, 2009, at 7:22 PM, Tiago Machado wrote:
>>
>>>>>> hi fabrice,
>>
>>>>>> can you send me further details?
>>
>>>>>> thx
>>
>>>>>> tiago.
>>
>>>>>> On Dec 16, 5:48 pm, Fabrice3D <[email protected]> wrote:
>>>>>>> you need to set the materials at face level.
>>
>>>>>>> Like mesh.faces[index].material = ITriangleMaterial
>>
>>>>>>> Fabrice
>>
>>>>>>> On Dec 16, 2009, at 6:11 PM, Tiago Machado wrote:
>>
>>>>>>>> how can i associate two or more materials with the same object?
>>
>>>>>>>> i want to lighting an object with a pointLight3D and an
>>>>>>>> ambientLight3D
>>>>>>>> using whiteShadingMaterial and phongBitmapMaterial.
>>
>>>>>>>> thx.
>>
>>>>>>>> tiago.