Ignacio Castaño🍉
@castano.mastodon.gamedev.place.ap.brid.gy
Master swimmer, mountain climber, and stand up coder.
I work on texture processing tools at Ludicon.
Formerly at Roblox, Thekla (The Witness), NVIDIA […]
🌉 bridged from https://mastodon.gamedev.place/@castano on the fediverse by https://fed.brid.gy/
I work on texture processing tools at Ludicon.
Formerly at Roblox, Thekla (The Witness), NVIDIA […]
🌉 bridged from https://mastodon.gamedev.place/@castano on the fediverse by https://fed.brid.gy/
Oh, Firefox, what have you done... 😞
October 14, 2025 at 6:57 AM
Oh, Firefox, what have you done... 😞
For some reason I thought WebGL did not support pixel buffer objects. Turns out I was wrong. It supports PBOs with some restrictions that does not really affect my use case. So, today this happened:
October 8, 2025 at 11:11 PM
For some reason I thought WebGL did not support pixel buffer objects. Turns out I was wrong. It supports PBOs with some restrictions that does not really affect my use case. So, today this happened:
I got some feedback about poor behavior on slow connections and lack of feedback. Apparently my server is pretty slow from hotel rooms in Japan.
I've addressed these by adding a progress bar and disabling the UI while the models are loading.
I'm new […]
[Original post on mastodon.gamedev.place]
I've addressed these by adding a progress bar and disabling the UI while the models are loading.
I'm new […]
[Original post on mastodon.gamedev.place]
September 17, 2025 at 4:55 AM
I got some feedback about poor behavior on slow connections and lack of feedback. Apparently my server is pretty slow from hotel rooms in Japan.
I've addressed these by adding a progress bar and disabling the UI while the models are loading.
I'm new […]
[Original post on mastodon.gamedev.place]
I've addressed these by adding a progress bar and disabling the UI while the models are loading.
I'm new […]
[Original post on mastodon.gamedev.place]
Now, with a fancy size widget:
September 13, 2025 at 4:53 AM
Now, with a fancy size widget:
Upcoming example is looking good! Adding a user interface with html was pretty easy.
September 13, 2025 at 12:24 AM
Upcoming example is looking good! Adding a user interface with html was pretty easy.
My daughter wanted an epic and I think I delivered.
September 2, 2025 at 8:06 PM
My daughter wanted an epic and I think I delivered.
Dragon peak was awesome. I could not summit because thunderstorms started rolling in. I was 300 feet away from the summit, but I’m glad I turned around since it started hailing and raining hard just as I was exiting the technical section. Unfortunately […]
[Original post on mastodon.gamedev.place]
[Original post on mastodon.gamedev.place]
August 24, 2025 at 12:12 AM
Dragon peak was awesome. I could not summit because thunderstorms started rolling in. I was 300 feet away from the summit, but I’m glad I turned around since it started hailing and raining hard just as I was exiting the technical section. Unfortunately […]
[Original post on mastodon.gamedev.place]
[Original post on mastodon.gamedev.place]
Finally, I'm thrilled to welcome Infinite Flight and Netflix as new Spark licensees, and also deeply grateful to HypeHype for their continued support.
August 6, 2025 at 7:52 PM
Finally, I'm thrilled to welcome Infinite Flight and Netflix as new Spark licensees, and also deeply grateful to HypeHype for their continued support.
And also in my image viewer:
July 23, 2025 at 1:57 AM
And also in my image viewer:
Perceptual metrics are somewhat subjective, but in my opinion SSIMULACRA2 correlates much better with perception than Flip, at least for typical texture compression artifacts. Flip may be better suited for other forms of rendering artifacts.
However […]
[Original post on mastodon.gamedev.place]
However […]
[Original post on mastodon.gamedev.place]
July 23, 2025 at 1:55 AM
Perceptual metrics are somewhat subjective, but in my opinion SSIMULACRA2 correlates much better with perception than Flip, at least for typical texture compression artifacts. Flip may be better suited for other forms of rendering artifacts.
However […]
[Original post on mastodon.gamedev.place]
However […]
[Original post on mastodon.gamedev.place]
Found this cool sculpture in Sacramento.
July 4, 2025 at 6:39 AM
Found this cool sculpture in Sacramento.
My Father’s Day gift to myself.
June 20, 2025 at 7:55 PM
My Father’s Day gift to myself.
Looks like Float16 support in tint's spirv to wgsl translator is still immature. I'll be filing some bug reports.
June 13, 2025 at 1:45 AM
Looks like Float16 support in tint's spirv to wgsl translator is still immature. I'll be filing some bug reports.
My swim club organizes an open water swim every year. It’s our main fundraiser. I’ve been helping with the setup the last few years and this time I took on more responsibilities and became the setup coordinator. Looks like everything went smoothly. Now […]
[Original post on mastodon.gamedev.place]
[Original post on mastodon.gamedev.place]
June 7, 2025 at 3:16 PM
My swim club organizes an open water swim every year. It’s our main fundraiser. I’ve been helping with the setup the last few years and this time I took on more responsibilities and became the setup coordinator. Looks like everything went smoothly. Now […]
[Original post on mastodon.gamedev.place]
[Original post on mastodon.gamedev.place]
Very crowded weekend, but it’s actually fine once you get a few feet above the ground.
May 27, 2025 at 7:17 AM
Very crowded weekend, but it’s actually fine once you get a few feet above the ground.
And yet another supported platform: OpenGL ES 3.0 for iOS.
I hear developers stuck on OpenGL are using ANGLE or starting to look into it, but it's good to see there's a viable code path for native GL on iOS.
Some minor surprises, like lack of texture […]
[Original post on mastodon.gamedev.place]
I hear developers stuck on OpenGL are using ANGLE or starting to look into it, but it's good to see there's a viable code path for native GL on iOS.
Some minor surprises, like lack of texture […]
[Original post on mastodon.gamedev.place]
May 22, 2025 at 5:43 AM
And yet another supported platform: OpenGL ES 3.0 for iOS.
I hear developers stuck on OpenGL are using ANGLE or starting to look into it, but it's good to see there's a viable code path for native GL on iOS.
Some minor surprises, like lack of texture […]
[Original post on mastodon.gamedev.place]
I hear developers stuck on OpenGL are using ANGLE or starting to look into it, but it's good to see there's a viable code path for native GL on iOS.
Some minor surprises, like lack of texture […]
[Original post on mastodon.gamedev.place]
One surprise is that my alpha error is much lower than all the other codecs. I probably need to weight it differently and try to reduce the RGB error instead.
I'm using W(A)=1 as suggested by cbloom on: https://cbloomrants.blogspot.com/2021/09/alpha-weighting-in-rgba-image-squared.html
I'm using W(A)=1 as suggested by cbloom on: https://cbloomrants.blogspot.com/2021/09/alpha-weighting-in-rgba-image-squared.html
May 22, 2025 at 4:46 AM
One surprise is that my alpha error is much lower than all the other codecs. I probably need to weight it differently and try to reduce the RGB error instead.
I'm using W(A)=1 as suggested by cbloom on: https://cbloomrants.blogspot.com/2021/09/alpha-weighting-in-rgba-image-squared.html
I'm using W(A)=1 as suggested by cbloom on: https://cbloomrants.blogspot.com/2021/09/alpha-weighting-in-rgba-image-squared.html
Added a few more textures from ambientcg and compared with OodleTex using preserve extremes and without.
I really need to do something to differentiate q0 from q1, otherwise there's not much point in having 3 quality levels.
I really need to do something to differentiate q0 from q1, otherwise there's not much point in having 3 quality levels.
May 22, 2025 at 4:42 AM
Added a few more textures from ambientcg and compared with OodleTex using preserve extremes and without.
I really need to do something to differentiate q0 from q1, otherwise there's not much point in having 3 quality levels.
I really need to do something to differentiate q0 from q1, otherwise there's not much point in having 3 quality levels.
The quality of the alpha weighted real-time BC7 codec is looking quite good:
May 21, 2025 at 11:36 PM
The quality of the alpha weighted real-time BC7 codec is looking quite good:
When processing textures offline transparent texels are often filled with dilation or extrapolation filters and in cases like that the improvements are minimal, but I cannot make assumptions about the input data, and it's unlikely uses will be doing […]
[Original post on mastodon.gamedev.place]
[Original post on mastodon.gamedev.place]
May 21, 2025 at 12:58 AM
When processing textures offline transparent texels are often filled with dilation or extrapolation filters and in cases like that the improvements are minimal, but I cannot make assumptions about the input data, and it's unlikely uses will be doing […]
[Original post on mastodon.gamedev.place]
[Original post on mastodon.gamedev.place]
I'm revisiting the RGBA codecs and I'm once again pondering whether to support alpha weighting. In many cases the differences are minor, but in some cases the difference can be quite noticeable. Here's one of such examples:
May 21, 2025 at 12:54 AM
I'm revisiting the RGBA codecs and I'm once again pondering whether to support alpha weighting. In many cases the differences are minor, but in some cases the difference can be quite noticeable. Here's one of such examples:
I'm quite shocked by the garbage produced by PIL and ImageMagick when resizing an image with an alpha channel:
May 20, 2025 at 5:22 AM
I'm quite shocked by the garbage produced by PIL and ImageMagick when resizing an image with an alpha channel:
Yet another platform with Spark support! OpenGL in macOS does not support compute, shader buffer objects, or texel to block image copies, but you can run the codecs using fragment shaders and pixel buffer objects.
May 14, 2025 at 9:32 PM
Yet another platform with Spark support! OpenGL in macOS does not support compute, shader buffer objects, or texel to block image copies, but you can run the codecs using fragment shaders and pixel buffer objects.
On Adreno the Mali-specific changes do not have any benefit and in some cases produce slower results, but the overall speedup is still huge.
May 12, 2025 at 11:47 PM
On Adreno the Mali-specific changes do not have any benefit and in some cases produce slower results, but the overall speedup is still huge.
I still have a regression at higher quality levels on older Bifrost devices. These devices will most likely use the Q0 codecs, so I think this is acceptable.
May 12, 2025 at 11:42 PM
I still have a regression at higher quality levels on older Bifrost devices. These devices will most likely use the Q0 codecs, so I think this is acceptable.