Rojo3d. 3D engine for Construct 2

1 favourites
From the Asset Store
Casino? money? who knows? but the target is the same!
  • Hi again!

    Does this plugin use three.js for 3D ?!

    if (awnser==no) {

    Why you don't use it?! (this library is very amazing and has good performance! & with it some things (like VR It becomes possible!)


    & I have these plugins for 3D:

    What's the difference between your plugin and these plugins I have?!

    And you are support physics for your plugin?!

  • It doesn’t use any 3D library. I just use webgl directly.

    Why? Because it seemed interesting.

    It’s different from triangle3d because I ended up changing how it worked significantly.

    I haven’t used the others plugins.


    It’s a single object because I didn’t want to deal with picking.

    It doesn’t use an existing library because I couldn’t get them to work the way I wanted to and they are too bloated for my use case. This plugin is able to be drawn between other normal construct objects without an image copy per frame. Other plugins run on a separate canvas that’s copied every frame or layered over the game canvas.

  • R0J0hound

    1. Yes - that's exactly it. I completely missed it...
    2. Sorry, wrong terminology - I mean having an Additive or Multiply Blend Mode for individual objects.
    3. Yes please. I don't know at what level of fidelity performance will suffer, but I would suggest Diffuse and Emmisive as a minimum.
    4. Yup. Omni, even without shadows would open a lot of possibilities. For any distance-bound lights, I would just have max light distance and an option to specify a decay curve (linear/square/inv square etc.)
    5. Yes - absolutely - it can't get any more optimized that using that condition. I withdraw my request - this makes the live link unnecessary.
  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • R0J0hound

    Another feature I would love to have would be an animation system like I suggested in the Triangle3d thread:

    Extend Set object mesh with a parameter called Blend Time, defaulting to 0.0. Then, if the new mesh has the same number of vertices as the currently assigned one, the vertex positions will interpolate from the old mesh to the new mesh over Blend Time. It would be up to the user to make sure the vertex order in the two meshes is correct. If the vertex number is different, the blend would not happen and the new mesh would be loaded immediately (current behavior).

    What do you think?

  • This is fantastic :) I will definitely give it a shot. Seams like it is much more efficient to work with then q3d. I do agree with the addition of blend modes and couple more lights, and raycasting(unless there is an alternative to that)

    Some questions:

    - I would like to know how exactly relto works? if i have two objects: player and camera, if I want camera to be the eyes of the object I just set it's x and z to 0 and specify id of the relative object?

    -Are there 3d particles?

    -How to get animated textures?

    -What does setting rectangle do?

    - I noticed you can create verts and store them as mesh. Is it possible to create plane that would work as a wall for example?

    I also would like to know how it is performing against something like three.js just out of curiosity.

    I'll be researching that myself, but answers are welcome, and an example capx would be even better.


  • Funky Koval

    Oh my apologies. I thought I had replied. I like those ideas. Need to change up a few things to get that stuff to work. Have been taking a break from working on this, and looking for excuses not to be on the computer, but I have been doing tests applicable to this elsewhere. Just need to crack this open again.



    Relto is the object I’d you are setting an object relative to. But in what way it is relative depends on if you are setting the position, orientation or scale.

    As an example say you set the position to x,y,z relto:”obj2”. It will set the position to obj2 and then, using obj2’s orientation, it will move x units to the right, y units down, and z units forward.


    There are no particles but you can do it manually.


    Animating the textures is just a matter of changing the texture of an object every frame or however often as you want it to change.


    Setting the texture rectangle let’s you only display a portion of a texture.

    If (0,0,1,1) uses the whole texture

    Then (0,0,0.5,0.5) would only be the top left quarter of the texture. Can be useful for packed sprite sheets.


    The create verts and save it as a mesh is to just make any mesh you want. Just lets you do it with events instead of loading a pre made obj file.


    I’ve never compared this with other libraries. It may or may not be faster. It does less than three.js but it coexists on the same canvas as construct as opposed to being a separate layered canvas or a canvas that is copied to a texture every frame. I’m sure the performance will change as the feature set changes.

  • Nice. Yes I like it a lot! I like how minimalistic it is, yet all features are there. I like it's in canvas too. One less object to worry about. Thank you!

    I've played with vertexes but still can't get them right. And since I'm forever noob, i don't get it. For a moment I had this idea, to use those verts in creating level editor for that infamous top down editing.

    But I do think, some sort of basic shader support would be really cool. For example, I'm only planning on having few objects for the whole game, just change textures. However If I could copy/paste shader for wall or water from an online library, that would be so much more awesome. And raycasting cause without it objects can move only on flat surfaces, with it can make hills etc You know what I mean?


  • Could you also help me out with fps movement free look? Left and right head turning works, but can't figure out up and down.


  • R0J0hound I also tried to stear the head with two events for rotating camera one after another, one for horizontal movement and another one for vertical movement. But results are weird, and camera is changing horizontal angle when turning.

    Can you please show me how to get first person camera working? Would really appreciate it!

  • megatronx

    There are probably multiple ways but this works:

    set orient to (-90,0,0)

    rotate xrot by axis (0,1,0)

    rotate yrot by axis (1,0,0)

    I found it by trial and error. by default the camera looks into the screen. we rotate by -90 so it's looking up. Then from that viewpoint we can rotate left and right, and finally we rotate again for up and down.

  • megatronx

    There are probably multiple ways but this works:

    set orient to (-90,0,0)

    rotate xrot by axis (0,1,0)

    rotate yrot by axis (1,0,0)

    I found it by trial and error. by default the camera looks into the screen. we rotate by -90 so it's looking up. Then from that viewpoint we can rotate left and right, and finally we rotate again for up and down.

    Thanks a lot. Could you maybe give an example for controler left stick free view?

  • R0J0hound I can't get this to work. I did exactly the same thing before actually, but with two rotation events using gamepadaxis for x and y rotation, but either there is a bug that causes camera to go off balance, or I'm doing something wrong. I just need standard fps camera with free view and ability to play with gamepad and mouse/kb and can't figure it out. In q3d I had it set like this

    If you could help me out with this, maybe email me m.a.holowkocbz@gmail . com

  • It will take me a day or two to fiddle with it. I’ve never used q3d.

    With this plugin the Euler angles are just xyz ordered. For any other ordering I just opted to just do it with some additional rotate actions instead of picking an order.

    Also what may make it different is how I specified the axis’ to match the layout. X to the right, y down and z up toward the screen.

    Most other 3D have z be negative toward the screen. But anyways changing that would be a breaking change.

    Anyways. All that seems to be needed is to rotate so the camera so it’s oriented with the ground down. Found that with some trial and error.

    The turning is done by rotating around y, and looking up and down with x.

    In my example I used the mouse position to drive the rotation. But you could just use variables.

  • R0J0hound Got it to work! Not sure if it's best way, but it's working. Maybe I could make it bit smoother. Should I use Lerp?

    Also, to my understaing vector Z is the pointing vetor of the camera in that setting, correct? What orientation from the list it is: XZ, YZ, ZZ, ZX, ZY? Thanks!

  • So as I said earlier, plug-in is great. But, and it is a request, it really needs few extra addons: raycasting and shader support. One of the reasons for raycasting is testing for collision with poly's of something like an uneven terrain (unless there is another way to do that?). And shaders to enhance or generate textures or alter meshes or be used as a full texture replacement. Complementary lights would be welcome too. But it's the raycasting that is important to me more at this particular moment, and is critical to my project. Best.

Jump to:
Active Users
There are 2 visitors browsing this topic (0 users and 2 guests)