Mikal's Forum Posts

  • It takes a bit more work compared to 3D Shape, but you could try my 3D Object plug-in. You will need to create a gltf 3D Model and texture.

    construct.net/en/forum/construct-3/general-discussion-7/3d-object-gltf-3d-model-163781

  • Is there an plug-in SDK method to check if an object is within the 3D camera viewport?

    For example, how the engine might determine using the 3D Shape's x, y, z elevation, bbox, and z height if Draw() should be called or not (I'm not sure how it's done, just guessing.)

    I want to check if my 3D Object is visible or not depending on the camera location and orientation. If it is, I want to have the option to pause animations to save CPU cycles.

    For 2D I used to do the below, but, this is not applicable for 3D.

     let wi = this.GetWorldInfo();
     let layerRect = wi.GetLayer().GetViewport();
     let instanceRect = wi.GetBoundingBox();
     let onScreen = instanceRect.intersectsRect(layerRect);
    
  • I am not sure if this behavior is the same for webGPU, but I imagine it may be similar, so I wanted to discuss first before adding an aha suggestion.

    Ashley

    In the current Spine plugin, I share WebGL context with the C3 renderer and the Spine WebGL renderer. To do this, I save off certain WebGL parameters that C3 is using, render using the Spine WebGL renderer and then restore the WebGL parameters. I use the same context to render to texture for C3 use, for better performance. The save parameters is a blocking WebGL operation, but I need to do it because I don't have access to any shadow parameters from the C3 engine. This is all relatively ok and it works, but has perf impact.

    If there is a new webgpu renderer coming for C3, would it be possible to include a save and restore set of methods, so the C3 webgpu renderer can coexist with another webgpu renderer in the same 'context'? For example for the Spine renderer or other renderer. I have never implemented anything in webgpu yet, so I won't be shocked if I make bad assumptions, but I wanted to start the conversation.

  • Have there been any recent changes in the effect compositor? I have heard reports of a couple of the effects that I work on behaving differently recently. Were there changes to any of the default uniforms or U/V min/max range? I also noticed there were some changes reported to one or two of the built-in effects.

  • For creating lower poly models in blender, try the second answer here - decimate (FoozleCC pointed me at it.)

    blender.stackexchange.com/questions/31467/how-to-reduce-vertex-count-on-a-mesh

  • In general, I think there is a possibility for higher performance, currently, I am focused on minimal features and critical bugs first (e.g. flicker when animation change, rotation not working for some mixed mesh models.)

  • There is a comment on the itch.io 3D Object page about this.

    You must make the image size of the 3D Object larger than the Project sprite sheet size. For now, I suggest making the Project sprite sheet size the minimum (512) and if needed, upsize the image size of the 3DObject to be 512 or higher.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Did you figure this out? I may have some ideas.

  • ​Interim update, some partial fixes:

    Better gltf error recovery, instead of crashing the editor, note in the dev console the issue of loading files and throw an alert. To correct this, change the filename back to 'path', reload the project, and use a different file next time.

    Somewhat better rotation when rotating a model with skinned and non-skinned nodes. For a single axis of rotation, they will both rotate in the same way.​

    However, still, an error when rotating skinned and non-skinned nodes with more than two axes of rotation, they do not rotate in the same direction for all axes of changed rotation.

    kindeyegames.itch.io/c3-3dobject-alpha/devlog/303680/interim-update-editor-crash-rotations

    Funky Koval - ah I see what you mean, a cool feature, I will add it to the list, but currently a low priority.

  • There is a new expression on the 3D Camera plug-in: ZScale which can give you the proper scale for Z with various viewport sizes.

  • I see, I'll work on making the error detection more robust and will probably throw up an alert box at least when the editor is running.

  • Mikal

    Quick questions on features:

    -are you planning on removing the limitation of the object's texture being larger than spritesheet size?

    Yes, at some point in the future when I use dynamic texture instead of the sprite sheet, probably not for a little while though. If you are concerned about too large a texture for a model, I recommend setting the project sprite sheet size to 512, instead of the default 2048.

    -are you planning on allowing for texture/image sequences (ideally something like Q3D, handling it like the Sprite object)?

    Hmm, I have not really thought about that. Do you mean updating the model's texture during runtime like an animation?

  • I do have a _partial_ fix to the rotation. I can rotate your skysphere now, however, if you have a model with both armature (skinned node) and not, they don't rotate correctly together. I could release it, but again it's just a partial fix.

    What do you mean by 'export the wrong file'? So, I can watch out for that and try to ignore it, instead of crashing.

  • By bounding box, I mean the area by which we can drug the 3D object in the editor.

    Ah, yes. That may also be related to getting C3 API support for Common Z Elevation ACEs (BB in the editor, automatically adjusted for Z Elevation like 3D Shape does for the back face.)

  • Yes, sorry I will correct the documentation. There was a version of the runtime from the Spine API team which broke worker mode. There is a new version that _may_ have fixed the issue. I will try updating with that next week. Meanwhile, I will update the document to remove that 'feature' comment. Thanks for trying it out.