Ask a Question related to Macromedia Director 3D, Design and Development.
-
Charlie Allgrove #1
2d to 3d
Hi
I have a Director MX2004 movie which allows users to create a floor plan and
add furniture shapes in 2d, then display a 3d world shwoing the furniture in
the "room".
In the 3d world, I've created a plane and added a texture which is the 2d
floorplan sprite as drawn by the user. Could someone advise how best to
scale and position the floorplan and the furniture objects in the 3d world
in the same relative positions as the user has put them in 2d?
Charlie Allgrove Guest
-
Agustín María Rodríguez #2
Re: 2d to 3d
Charlie Allgrove wrote:
Hi. Two quick ideas comes to mind. Use spriteSpaceToWorldSpace()> Hi
> I have a Director MX2004 movie which allows users to create a floor plan and
> add furniture shapes in 2d, then display a 3d world shwoing the furniture in
> the "room".
> In the 3d world, I've created a plane and added a texture which is the 2d
> floorplan sprite as drawn by the user. Could someone advise how best to
> scale and position the floorplan and the furniture objects in the 3d world
> in the same relative positions as the user has put them in 2d?
>
>
function to convert 2D coordinates into 3D or work with percentages.
Suppose that your 2D floorplan sprite is 200x200 pixels, then 100 pixels
= 0,5, 200px = 1 and so on...
Now suppose that your 3D floorplan is made of 1500x1500 3d units. Then
when the user clicks on the middle of the 2D sprite, that will be
traduced as 0.5x0.5 of the 2D sprite, now you multiply that number for
the 3D units (1500*0.5) and you get 750x750.
You´ll probably have to apply offsets and make tweaks but the main idea
is that you convert the 2D value to 0..1 by doing for example
clickedPointX / float(spriteWidth) and then you multiply it by the with
of the 3D floorplan.
Hope that helps,
--
Agustín María Rodríguez
[url]www.onwine.com.ar[/url] > Macromedia Director demos & code
Agustín María Rodríguez Guest
-
Charlie Allgrove #3
Re: 2d to 3d
Thanks for that...I'll have a play and see how I get on!
Charlie Allgrove Guest
-
Charlie Allgrove #4
Re: 2d to 3d
Hi
I think I'm getting somewhere...but I'm new(ish) to Director and I'm not
entirely certain about 3d units vs 2d units...
I'm creating a plane in the 3d world and setting the width and length of the
modelResource to a maximum of 320x240px with a scale of 1.
Are these the 3dunits?
I'm then taking the 2d positions of the furniture elements and converting
them to the same point in the 3d world according to a calculated scale
factor, but the positions do not appear to be correct...
Any ideas gratefully received
Charlie
"Agustín María Rodríguez" <agustin@onwine.com.ar> wrote in message
news:e5hh5j$bfh$1@forums.macromedia.com...> Charlie Allgrove wrote:
>>>> Hi
>> I have a Director MX2004 movie which allows users to create a floor plan
>> and add furniture shapes in 2d, then display a 3d world shwoing the
>> furniture in the "room".
>> In the 3d world, I've created a plane and added a texture which is the 2d
>> floorplan sprite as drawn by the user. Could someone advise how best to
>> scale and position the floorplan and the furniture objects in the 3d
>> world in the same relative positions as the user has put them in 2d?
> Hi. Two quick ideas comes to mind. Use spriteSpaceToWorldSpace() function
> to convert 2D coordinates into 3D or work with percentages. Suppose that
> your 2D floorplan sprite is 200x200 pixels, then 100 pixels = 0,5, 200px =
> 1 and so on...
>
> Now suppose that your 3D floorplan is made of 1500x1500 3d units. Then
> when the user clicks on the middle of the 2D sprite, that will be traduced
> as 0.5x0.5 of the 2D sprite, now you multiply that number for the 3D units
> (1500*0.5) and you get 750x750.
>
> You´ll probably have to apply offsets and make tweaks but the main idea is
> that you convert the 2D value to 0..1 by doing for example clickedPointX /
> float(spriteWidth) and then you multiply it by the with of the 3D
> floorplan.
>
> Hope that helps,
> --
> Agustín María Rodríguez
>
> [url]www.onwine.com.ar[/url] > Macromedia Director demos & code
Charlie Allgrove Guest
-
Agustín María Rodríguez #5
Re: 2d to 3d
Charlie Allgrove wrote:
If you don´t have it, download and install 3DPI> Hi
>
> I think I'm getting somewhere...but I'm new(ish) to Director and I'm not
> entirely certain about 3d units vs 2d units...
>
> I'm creating a plane in the 3d world and setting the width and length of the
> modelResource to a maximum of 320x240px with a scale of 1.
> Are these the 3dunits?
> I'm then taking the 2d positions of the furniture elements and converting
> them to the same point in the 3d world according to a calculated scale
> factor, but the positions do not appear to be correct...
([url]http://www.3dpi-director.com/[/url]). Use it for picking a model and change
its position. Every time you press the increase/decrease button for the
position value, you´re moving the model one 3D unit.
It doesn´t have anything to do with the 3D sprite size. To know the
boundaries of your 3D floorplan, move any model to the top left of the
floorplan and watch its position in the 3DPI xtra, then move it to the
bottom right position of the floorplan and check it´s position. You´ll
get values like this:
dummy model´s position when placed top left: vector(25, 80, 15)
dummy model´s position when placed bottom right: vector(75, 180, 15)
Suppousing you got those values, now you know that the floorplan´s
width is 50 units (75 - 25) and its height is 100 (180 - 80).
Now suppouse that you click on the 2D floorplan and you get 0.25 on X
axis and 0.5 on the Y axis. With those values you can now find the 3D
equivalent position:
x_3D_pos = topLeft3DVector.x + floorPlanWidth * 2D_XclickedProportion
x_3D_pos = 25 + 50 * 0.25
x_3D_pos = 25 + 12.5
x_3D_pos = 37.5
and y_3D_pos would be 130, that is: 80 of offset + (100 of width * 0.5
of 2Dfloorplan proportion).
I hope this isn´t too messy for you.
Regards,
--
Agustín María Rodríguez
[url]www.onwine.com.ar[/url] > Macromedia Director demos & code
Agustín María Rodríguez Guest



Reply With Quote

