While working on spark.js, I realized that normal map compression formats weren’t supported in popular frameworks like three.js. I addressed that gap by adding the necessary support to three.js and wrote an article to shed some light on the topic, drawing from my experience in real-time 3D graphics.
Now that three.js supports BC5/EAC normal maps, I've updated the spark.js gltf demo with new texture assets.
Last time I simply used gltf-transform with default settings, but this time I tailored the settings to each specific texture type and the resulting quality is much better:
New #ThreeJS PR: high quality 3D procedural wood materials via TSL. Includes maple, oak, walnut, cedar, poplar, cherry wood types and also includes raw + coating variants.
Very big announcement from
@castano for WebGPU apps! Spark.js means you can send small file formats over the network (WebP, AVIF, ...) and compress to GPU texture formats like ETC2, BCn, or ASTC near-instantly using WebGPU — at runtime.
This creates new options to consider when generating textures on the fly, as well, where GPU texture compression would not have been an option before.
(Note: Spark.js is free for non-commercial use, with a very fair one-time fee for indie and larger applications).
I'm going to stream some office hours - I'll be revisiting some of the tools I developed for my adventure game and hopefully figuring out a way to move them forward. https://www.twitch.tv/sublingualart
On my last stream I was throwing around the idea of setting up some materials to always draw on top to avoid characters clipping through the ground plane. Turns out it was pretty easy to implement. Here, half of Julian is always on top, but his feet are drawn normally so they go behind some geometry. Neat! #gamedev#threejs
In the past week or so I added a layer of debugging controls that let me browse sequences of dialogues and actions. Once I get the other editing controls hooked up, I'll be able to do more editing and testing in the browser, and then just copy the JSON into the game files. #gamedev#threejs
For dialogues tagged as speech I've ripped out my css frame code and added a canvas backdrop so that I can draw a bubble along with a stem which moves along with the camera. I started out thinking of this as a nice-to-have feature but actually I think it does a lot to tie the dialogue to the scene. Now I just need to apply the same patterns to each fill and finish styling it. #gamedev#threejs
Got this sequence working after some adjustments to the action system. Next I need to do a new draft of the red gladiator, who will be riding the bike, that works with these angles. From office hours @ https://www.twitch.tv/sublingualart#gamedev#threejs