QuaziGNRLnose's Forum Posts

  • The engine checks whats in the view frustum, rendering/updating only what it has to based on that. It doesnt do occlusion culling however. The best way is to destroy/hide what isnt needed if its a performance issue, but leave things alone if it isnt. Also remember its a js engine, so dont expect to make things that are too crazy. If you can set unique materials and unique textures off that helps with performance too. At some point too much is too much however, so i cant recommend more what i have, necessary optimizations can get really complex if needed. I suggest making tests before deciding your game needs to be a certain scale and then ending up dissapointed it isnt.

    One thing i can say is that a lot of Q3D models will be slower than one with an equal number of triangles, so batching static objects into a single model can give a huge boost since it makes the gpu do the work.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • not really possible the way construct is written. Someone could do this on their own if they really wanted to but there'd be limited support for various plugins since it would basically need to read the xml file of a c2 project, and output a unity file. It's just not something that's gonna happen.

  • Sorry if I missed something but is there any post processing support in Q3D yet? Would love to mess with HDR and DOF!

    ATM simple post processing effects can be done by using "inside" render mode on Q3DMaster and setting up effects on Q3DMaster as you would on a sprite. I plan to possibly add more complicated systems for applying post processing effects that access the depth buffer like DOF and SSAO but its not on the cards yet. you can definitely do HDR though with the inside mode trick, with the proper construct effect (not sure if someones made one yet).

    I might allow more complicated effects through an "inside" mode on Q3DViewports, and a special depth/normals rendering mode, so you can layer things up in construct. I'm not sure how things like alpha/transparency would be handled though in those cases. Theres a lot to work out! another way I might do it is by having a separate plugin for controlling post effects. I was toying around with adding deferred renderer support but its very experimental atm in three.js so a lot of features are buggy / lacking. I don't have a crazy amount of time to work on things right now so updates will be slowing down again.

  • You could try making it a behaviour for the audio object

  • It should work. Dunno why it isnt. Not home atm so i cant test why.

    Yea you need a model, raycast wasnt meant to pick colliders. You can mimic the behaviour with colliders if you have to by using a Q3DModel with a collider of a long thin box as a fake ray.

  • Heres a demo of the physics for those who are interested :

    3D Physics Demo using Oimo.js plugin

  • GeometriX

    Yea be sure to look carefully at the examples! There's a lot of useful features that are a bit hidden away because i didn't do proper docs yet.

  • UnixRoot

    Right now im implementing oimo.js, eventually i want ammo.js but the emscripten port was bugging out on me when i tried it, and in general it generates a ton of garbage compared to oimo, making the framerate choppy. I'd say my oimo plugin is about 60% complete so far.

    How should i implement quats ? I left them out thinking people would combine axial rotations instead. I guess i'll make an action/expression to set/get quat (x,y,z,w).

    GeometriX

    Filtering should change with the project settings for textures, but scaling the canvas/making it low res will only be guaranteed point sampling if you use inside mode, most browsers force linear sampling on canvas resize. Ill try your test asap. Are you using the latest Q3D? It wasnt working right in older versions.

    EDIT: tried your file, the problem is that you're using model-materials, so the texture settings are ignored. You can fix it by simply importing the textures through construct (this is recommended anyway since it'll allow for animated textures, changing the material type, etc.) I'll be sure to add some method of changing imported model textures though, or at least make their filtering match the project settings. It slipped by me.

  • Yea, it's sort of a construct bug but i have it fixed in my version, so either wait for me to update Q3D or for C2 to be fixed. You should be able to work normally for now and it'll export properly next Q3D update.

    And yea thats the basic use case of sprites, since C2 sprites can't be used the same way.

  • you can't use anything that you use to normally render in 2D to render in 3D in Q3D. you can place that stuff above or below the Q3D canvas, but thats it.

  • there's likely a reason it was done that way for optimization reasons.

  • i don't know off the top of my head, but theres a list of instances which you can get from the js object for a particular type which is passed in from the object param.

  • here, you weren't quite doing things right.

    Mouse example

  • If your camera is not rotating / zooming in or out, you can just use mouse.x / mouse.y and set the layout scroll to the camera x/y position. You could also use absolute x and absolute y, but you'd have to shift the value. this is still basic vector math.

    make two global variable which you set after moving the camera

    // camera moving events go here //

    q3dmousex = q3d.camx+mouse.absoluteX-windowwidth/2

    q3dmousey = q3d.camy+mouse.absoluteY-windowheight/2

    //////////////////////////////////////////// any events that need the Q3D mouse position come after.

    if you only change the camera x and camera y position this will work, rotating the camera will require the vector math i was talking about, moving the camera will too.

    The Q3D.sprite does what it does... its quite self explanatory. Have you tried using it? It's just a billboard for 2D graphics in 3D. it doesn't make 2D graphics 3D, it displays 2D graphics in a way which allows them to be layered with 3D objects in the scene.

  • you're incorrect, behaviors have access to everything you'd need to write a controller. Calling specific conditions from the physics behavior is not how you'd go about it. you have to call the methods available to the instance / behaviour instance. if you wanted to write a behavior that runs events using conditions / actions / expressions, you're doing things wrong, you can do that in construct itself.