Add support for webGPU fragment lighting


Add support for webGPU fragment lighting, also in worker mode.

In terms of performance, I have not yet discovered the details, but webGPU renderer seems to take more CPU performance than webGL2. Additionally, looking at the GPU performance of fragment lighting, GPU performance for webgl2 and webgpu seem similar, if not webgl2 is a little better. Update: I realized that the CPU calculated rotation/scale/translation for webGPU is included in the CPU 'Draw Calls' bucket, so this is why it takes more performance, not due to anything inherent in webGPU render. There may be a possibility to include this task in the worker side, which may be worthwhile for complex higher poly models.

As per usual devs should measure their own performance and make comparisons, which can depend on usage and other GPU/CPU usage.

In terms of implementation details, it is more difficult to use the GPU to do rotation for 3DObject with the C3 webGPU vertex shader and enabling frag lighting. , so when frag lighting is enabled rotation is performed on the CPU, though the impact does not see like an issue, especially if worker animation mode is used for larger animated models.

Files

3DObject-2-61-0.c3addon 114 kB
Mar 13, 2024

Get Construct 3 3DObject Plugin

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

Nice! I will test later, Webgpu barely makes a difference for me for some reason in construct. Sometimes even worse performance lol.

Yeah, WebGPU doesn't seem to be making a difference in ways that matter. 2D games work well without it and it's not helping when it comes to 3D objects.