@castano@mastodon.gamedev.place avatar castano , to random

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.

https://www.ludicon.com/castano/blog/2026/02/normal-map-compression-revisited/

@juretriglav@mastodon.social avatar juretriglav , to random
@castano@mastodon.gamedev.place avatar castano , to random

spark.js has been featured on webgpu.com!

"Real-Time Texture Transcoding for Faster Asset Delivery"
https://www.webgpu.com/showcase/spark-js-gltf-real-time-compression/

@h4ckernews@mastodon.social avatar h4ckernews Bot , to random
@castano@mastodon.gamedev.place avatar castano , to random

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:

https://github.com/ludicon/spark-gltf-demo/

@castano@mastodon.gamedev.place avatar castano , to random

I've updated the three.js gltf spark loader to use BC5/EAC_RG formats for normal maps, which are not supported in r182.

https://github.com/Ludicon/spark.js

I've also shaved a few more bytes bringing the package size down to 256KB!

@castano@mastodon.gamedev.place avatar castano , (edited ) to random

three.js r182 was just released! 🎉

https://github.com/mrdoob/three.js/releases/tag/r182

I contributed support for RG normal maps, enabling support BC5 and EAC_RG normal map compression in both the WebGL and WebGPU renderers.

@thomas_kole@mastodon.gamedev.place avatar thomas_kole , to random

The Blender file of the 3D viewer of Tenochtitlan is released. You can download it from the main website.

It's like a digital twin, made for tinkering. It has a lighting and material setup to get you started. It renders in both Cycles and EEVEE

https://retratodetenochtitlan.mx/

video/mp4

@marwi@mastodon.gamedev.place avatar marwi , to random German
@decompwlj@mathstodon.xyz avatar decompwlj , to random
@BenHouston3D@mastodon.gamedev.place avatar BenHouston3D , to random

New PR: high quality 3D procedural wood materials via TSL. Includes maple, oak, walnut, cedar, poplar, cherry wood types and also includes raw + coating variants.

Full details: https://github.com/mrdoob/three.js/pull/31640

ALT
@donmccurdy@hachyderm.io avatar donmccurdy , to random

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).

https://mastodon.gamedev.place/@castano/114983485299830919

@BenHouston3D@mastodon.gamedev.place avatar BenHouston3D , to random

New Github PR to that adds much improved support.

New nodes & properties supported: thin film, sheen, transmission, rotate, determine, inverse, floor, reflect, refract, opacity, specular, anisotropy, etc...

Full details: https://github.com/mrdoob/three.js/pull/31439

@teskooano@mastodon.gamedev.place avatar teskooano , to random

We're definitely entering Kraken territory here when flying at nearly a 1/3rd of the speed of light

A video of a gas giant being flung out a solar system at 0.29c

@Pl4n3@mastodon.social avatar Pl4n3 , to random German

Integrating segment animation into the voxel editor. 🌳

Voxel editor with segment animation.

@h4ckernews@mastodon.social avatar h4ckernews Bot , to random
@h4ckernews@mastodon.social avatar h4ckernews Bot , to random
@Pl4n3@mastodon.social avatar Pl4n3 , to random German

Drew a landscape diorama with Marching Cubes and .🤓 https://pl4n3.github.io/test/webvr/edit.htm?file=file:sculptScapeEmbed

video/mp4

@SimonDev@mastodon.gamedev.place avatar SimonDev , to random

Did a video covering useful math for game developers, check it out!

Made with /

Video:

https://youtu.be/eRVRioN4GwA

@noerihuisman@arvr.social avatar noerihuisman , to random

Playing around with procedurally generating snow in Had to make sure you can make good snowballs with it in

Video showing a park bench covered in a layer of snow. Two virtual hands make snowballs out of the snow and throw them into the distance.

@thekhronosgroup@fosstodon.org avatar thekhronosgroup , to random

Today at Asia, we will be conducting a BOF with @w3c , @threejs , and OpenPBR. Come and learn more about the immersive web!

https://www.khronos.org/events/siggraph-asia-2024

@Jo@social.sublingual.xyz avatar Jo , to random

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

Jo OP ,
@Jo@social.sublingual.xyz avatar

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!

Gif paning around my scene of Julian sitting on the ground between two graves with one arm looking off in 3d space because it would normally be clipping into the ground

Jo OP ,
@Jo@social.sublingual.xyz avatar

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.

Jo OP ,
@Jo@social.sublingual.xyz avatar

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.

Screen capture from my adventure game where I'm moving the mouse up and down and the stem of the unfinished speech bubble moves along with it.

Jo OP ,
@Jo@social.sublingual.xyz avatar

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

Short clip from my adventure game of the bike going past Julian on a path