0.2 in January – Our Happy new Year Gift :)

December 18th, 2005 by Kiroukou :: en :: RSS 2.0 :: trackback

I’ve almost finished my exams, and I will finally be able to work again on Sandy next week.

I consider your requests, and here is the list of the features planned in the 0.2 :

  • add Camera Movements such as rotation, translation.
  • add events like onObjectClicked and onFaceClicked (names are not definitive, you can give me your ideas about that).
  • add a setFPS method to World3D and broadcast an event onWorldRendered (name suggestion?).
  • performance improvment (today I’ve won 4fps on Test10.swf).

Features planned for the future are :

  • manage clips transformations as a fake 3D directly in the engine. It’s basically a trick, but it allows to render a huge amout of objects.
  • change Rotate3D, Translation3D, Scale3D meaning. At the moment it makes the objet rotate, translate or scale every world renderering. It will change to do the transformation only one time! To make a movement you must use Interpolator objects!
  • add more 3D primitives.
  • add the possibility to use 3 and 4 points per face. It’s quite easy to do but I’m not sure of to manage efficiently the textureSkin with 4 points !
  • Camera view frustrum, and maybe clipping.

A new website, a forum and an online documentation are also planned :) I can’t give you a precise date, but I think you’re not so impatient.

Thomas

16 Responses to “0.2 in January – Our Happy new Year Gift :)”

  1. December 18th, 2005 at 8:02 am :: Alan Shaw

    Will the camera movement include all three rotations:
    yaw (embardée), pitch (tangage), roll (roulis)? I hope
    so, because I’m preparing an application that requires
    at least pitch and yaw, and I’d really like to base it
    on Sandy.

    Thanks for your efforts; the examples look great!

  2. December 18th, 2005 at 12:59 pm :: kiroukou

    Hi Alan,
    Yes Camera will have all three rotations. I’m not sure about the names yaw, pitch, roll or respectively rotY, rotX, rotZ whose might be more understandable.

    I’m thinking to allow Camera to use the Interpolator classes too. What do you think about that ?

  3. December 18th, 2005 at 6:14 pm :: Alan Shaw

    I don’t think rotX,Y,Z describe the necessary rotations correctly, because they need to be rotations about the camera’s own vertical, lateral, and longitudinal axes, not those of the world. That’s why the (aero)nautical terms are used. If the camera is already pointing in some arbitrary direction, what does rotY for example mean?

    As for the Interpolator issue, I don’t really understand it yet (I haven’t studied the code yet). Of course the camera should be able to start a rotation and just continue doing it if that’s what the programmer wants, just like an object in the scene. So if the Interpolator is the implementation Sandy uses for continuing transform, then so be it.

  4. December 18th, 2005 at 8:00 pm :: kiroukou

    __That’s why the (aero)nautical terms are used. If the camera is already pointing in some arbitrary direction, what does rotY for example mean?__

    Well it means the rotation around the Y axis of the local camera frame (possibly rotated). But I understand what you mean. Aeronautical terms aren’t so familiar (especially for french people ;) ), that’s why I’m thinking on something else.

    Yes you’ve pointed the Interpolator meaning ;) I really think about implement it in the 0.2.

  5. December 19th, 2005 at 12:53 am :: Alan Shaw

    Of course I’ll use it no matter what you call the rotations, I’ll just mention before shutting up that those terms are in common use in the field of panorama creation too:
    <http://www.panotools.info/mediaw...

    Looking forward to 0.2!

  6. December 19th, 2005 at 1:01 am :: kiroukou

    >>before shutting up
    No please don’t :)
    I really like this kind of discussion. I’m trying to think about the best choice, that’s why I hesitate.
    Anyway, the rotate method with the axis of rotation in parameter will also be available for people who don’t like yaw pitch roll, so let’s go :D

  7. December 20th, 2005 at 3:13 am :: Alan Shaw

    I have started my little project. How can I create a plane parallel to the YZ plane, at X=500 for example?

  8. December 20th, 2005 at 2:48 pm :: kiroukou

    Hi,
    You can do like this :
    var plane:Object3D = new VPlane(100,100, 4);
    plane.setPosition(500,0,0);

    But I don’t like the fact to separate HPlane to VPlane… Will change soon too ;)

  9. December 20th, 2005 at 5:35 pm :: Alan Shaw


    You can do like this :
    var plane:Object3D = new VPlane(100,100, 4);
    plane.setPosition(500,0,0);

    I don’t believe this answers my question. It appears that the plane is still parallel to the XY plane.


    But I don’t like the fact to separate HPlane to VPlane… Will change soon too ;)

    Excellent!

  10. December 20th, 2005 at 6:42 pm :: kiroukou

    Yes sorry you’ve right ;)
    It took time for me to understand where is the problem. It’s because I’ve changed the VPlane primitiv in my local version ;) I’ve added a boolean in the constructor to make a rotation of 90 degrees, so to do what you want.
    But as I’ve said, I’ll change that in the next release. It’s really not useful like this !
    ++

  11. December 22nd, 2005 at 7:24 pm :: cornel

    hi

    about the rotation (camera or whatever), what about beign handled with quaternions? Instead of something like:
    myCamera.setYaw(…)
    myCamera.setPitch(…)

    one could do something like:
    myCamera.setRotation(new Quaternion(1,0,0,90))

    just my 0.02$
    what do you think?

    merry christmas!
    cornel

  12. December 23rd, 2005 at 11:14 am :: kiroukou

    hi Cornel,
    Well not sure about your idea… Basically Quaternions are used in the core of the engine, not in this kind of use. I’m not sure about that, so if you can explain to me this idea, it would be great.

    In fact I have a complete Quaternion class, but I still don’t use it in the engine. Quaternion are useful when you want to store a rotation objet (so 4 properties compare to 16!) or when you what to remove the Gimbal Lock effect common with Euler angles. But (!) I’ve never seen so far this effect during my experiment, so I prefer to keep Matrix.
    Moreover Sandy allows to mix scale and rotation as transformation for a group. So if I use Quaternion in the core I must transform the quaternion into a MAtrix to apply the multiplication. And in this case quaternion’s use will be slower.

    But I’m not an expert of quaternions, so if I said something wrong, please say it (and explain also, I need to learn too :) )

    Merry Christmas Everybody

  13. December 23rd, 2005 at 1:29 pm :: cornel

    hi

    I’m by no means a 3d guru. I used to use quaternions while playing with opengl, and i thought that i’d make a suggestion. But if you say that they didnt fit well in sandy, i’ll take your word for that :)
    i’m looking forward to give sandy 0.2 a try.

    regards
    cornel

  14. December 24th, 2005 at 11:06 am :: kiroukou

    Sure Cornel, and I appreciate your proposition. I never thought about this possibility, but as I said I don’t think it can be really usefull here. But I’m still not an expert in 3D development, so I can make mistakes too ;)

    An other interessting point about Sandy 0.2 is the event sytem. It will completely change, and be more powerfull thnaks too pixlib (see Osflash.org/pixlib/). I think it’s a really good change, but not yet integrated into Sandy, Christmas first ;)

  15. June 6th, 2006 at 2:32 pm :: gouesse julien (gouessej@yahoo.fr)

    Hi

    Quaternions don’t automatically solve gimbal lock problems. For example, when you create a quaternion from Eulerian or Cardanian angles, or when you create a quaternion per rotation axis and then you multiply them, it doesn’t solve your problem at all. Why? Because you can’t use quaternions with no Euler’s angles. At least you use them during the initialisation of quaternions and modification and the true problem comes from the way to combine rotations: R=Rx.Ry.Rz which leads sometimes to lose a degree of freedom. It happens when you turn 0, 90, 180, 270 degrees around Oy for example. Don’t hesitate sending me emails if you need more explanations because I may never come back here.

  16. October 23rd, 2006 at 2:00 am :: Wedding

    Wedding Information…

    Wedding…

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>