NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Anatomy of a Texture (agentlien.github.io)
finn888 8 hours ago [-]
Spent way too long trying to get a rusty metal texture just right in Unity once. The PBR pipeline is no joke.
essai57 13 hours ago [-]
Really nice article, thanks for writing it! I recently dabbled in some of this in connection with modding a game and there encountered the hierarchy you describe of mips, tiles, blocks and texels, so very relatable. Great write-up!
augment_me 13 hours ago [-]
Why not compress the texture using NTC, VAE-VQ or some neural codec into a general embedding space of uint8 and then just expand and create mipmaps and similar using the target hardware standard?
Agentlien 12 hours ago [-]
The easiest answer is that most tools and hardware in use predates those type of embeddings.

The advantage with block compression is that it is purpose built to minimize bits used, it's local to small blocks, decoding and encoding can be done with fairly simple code[0], and it doesn't require any specific AI hardware.

I am unfamiliar with NTC, but at first glance it seems to require an Nvidia card with RTX features, meaning it wouldn't be supported on Xbox One and PlayStation 4 (AMD GCN), Xbox Series X|S and PlayStation 5 (AMD RDNA2), nor the original Switch (Nvidia Tegra X1).

[0] https://learn.microsoft.com/en-us/windows/win32/direct3d11/b...

augment_me 11 hours ago [-]
NTC requires GPU for real-time decoding, but you can use it as an compressor only to have a portable representation. It's actually the common use-case today, you can on-device offline decode directly to BC7 if you feel like it!
raincole 10 hours ago [-]
Doesn't that defeat most of the benefit though?
augment_me 6 hours ago [-]
Its a smaller binary size, general representation and amortizes the decoding to the consumer hardware
Sharlin 9 hours ago [-]
This question reminds me of one that people apparently have seriously asked: "Why didn't they simply send up the Space Shuttle to rescue the Apollo 13 astronauts?"
augment_me 6 hours ago [-]
Haha older hardware can do multiply-accumulates as well its not an insurmountable compute load :P
taylor-tg 15 hours ago [-]
Really enjoyed this, refreshing to read something passionate and hand written. I had no idea how much complexity existed in something as innocuous as handling textures between platforms.

Also pretty cool getting a glimpse into the work 505 does helping developers get their games in front of more people. I had no idea 505 was the publisher[0] for so many recognizable titles.

[0] https://en.wikipedia.org/wiki/List_of_505_video_games

cubefox 13 hours ago [-]
Suggestion: Adding dates to your blog posts would be helpful. The first sentence mentioned "last year" and I was confused what that meant since the post was undated.
Agentlien 13 hours ago [-]
That's a great suggestion. I'll probably add that tomorrow.
ethan-winters 2 hours ago [-]
enjoyed this
17 hours ago [-]
cineticdaffodil 10 hours ago [-]
[dead]
doormatt 15 hours ago [-]
Fantastic read! Not even a hint of LLMisms.
Agentlien 15 hours ago [-]
Thank you. I put a lot of care and effort into explaining my own insights the way I felt they needed to be expressed in my own voice. Letting a machine replace those words would have ruined that premise.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 07:22:47 GMT+0000 (Coordinated Universal Time) with Vercel.