Request to add access to Quad3D2() in the editor

From the Asset Store
Add SubRip (SRT) subtitles to your videos in Construct 3
  • Ashley - can you please add the Quad3D2() API to the editor iwebGLInterface, similar to how Quad(), etc. are available? I am working on the 3DObject plugin and currently I can render it in the runtime, but I think it would make it more user friendly, if I could also render it in the editor w/ control via drag and drop and properties, similar to how is done today with 3DShape.

    My goal is to make 3DObject have similar behavior to 3DShape, but allow for loading of a little more complex models and textures using obj/mtl with some controls for scaling and rotation initially.

  • FYI as Quad3D2() is not a documented feature, it's not actually officially supported for the SDK in the runtime yet either.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ashley I will amend my request, can you please add Quad3D2 API support/documentation for both runtime and editor? This work on 3DObject is done in the spirit of 3DShape which also uses Quad3D2, not full 3D, but 3D to enhance the C3 2D environment, leveraging C3 behaviors and integration with other C3 objects.

  • Well, if we did document it, I'd point out it's not a fast way to render meshes. It is designed for dynamic rendering of 2D sprites, and so uploads all the vertices to the GPU every frame. A low-to-mid range device might have a budget of maybe 10,000 quads to still hit 60 FPS, which is fine for the vast majority of 2D games. 3D shape uses such simple "models" that it essentially counts as just two or three sprites in terms of performance impact, which is also fine. However a single complex mesh could use that all up if you render it that way. Normally a 3D engine would upload the mesh vertices to the GPU once in a static buffer and render repeatedly from that, using techniques like instancing to re-use the same vertices if multiple models are on-screen at once, all of which is far more efficient - but Construct doesn't support that because those are 3D engine features, and it's still at its core a 2D engine. Are you aware of the limitations of what you are doing when you are asking for this API? It won't scale well and will probably be very difficult to improve given the constraints of Construct as a fundamentally 2D engine.

  • Ashley Thanks for the considered reply. I think I do appreciate the limitations here (in my past life I developed ASICs for modern video game hardware, PC and console. So, yes, more on the hardware side, but I understand GPU/CPU tradeoffs for performance.) So, even though we have to upload vertices every frame and we can't use VS for things like rotation or deformation/animation, a good experience does still seem possible offloading that work to the CPU and requiring per frame vertices upload.

    I think it would still be interesting for a range of games on a range of platforms.

    Developers would need to focus on low poly models in general and especially for the lower end devices, however in C3 we do develop games that focus on different platforms (e.g. some focus on PC/Console, some focus on higher end mobile, some across the full range, down to low end mobile.) So at least for the PC/console platform it should be possible to have a number of models. The fighter model is in the 900 poly range, I've seen other low poly models in the hundreds range which look pretty good.

    Without any optimizations, I've tested some 3DObject models on my iMac and get 100k+ polygons at 60fps, on my $120 Raspberry Pi 400 I get around 10k+ polygons.

    As with 3DShape, it would need to be used in moderation. For example there have been a number of GTA2 examples done using 3DShape for buildings and playing with the coming vanishing point and just a low poly car or two would look pretty nice in my opinion. Thanks for considering the request.

  • Ashley Nice addition of changing the vanishing point in the latest beta, this will also help some with 3DObject. Have you thought any more about documenting Quad3D2 in editor/runtime? Any other questions I can answer if you need other information from me?

  • Ashley Nice addition of changing the vanishing point in the latest beta, this will also help some with 3DObject. Have you thought any more about documenting Quad3D2 in editor/runtime? Any other questions I can answer if you need other information from me?

    I'm glad to hear that someone is planning to refine the 3D! I'm really looking forward to the news

  • Some stats show how 3D is important these days even on the web, where C3 is targeting to be a leader

    look, 3D games, without super graphics, has 70 times more plays than usual 2D games

  • Ashley In case you want to see what I am working on to get more info for your decision, here's a link to the addon and sample project.

    kindeyegames.itch.io/c3-3dobject-alpha

    Here's a link to one of the scenes of the project, which can be used for testing performance on different platforms. With this model and movement, I'm getting around 50k-60k polygons on a desktop, around 30k on an iPhone and around 10k on the Raspberry Pi (though again, the plugin is not optimized at all yet.)

    kindeyegames.com/3DObject003

    Fighters are spawned 1 per second, each is 926 polygons. Arrow keys move view.

  • Yeah, the performance is high.

    And good thing that even when 300 000 polygons is on the scene if they not visible it does not hit performance at all. that means that we can make big complex scenes, and just control the number of objects that are visible.

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