POV-Ray : Newsgroups : povray.pov4.discussion.general : Suggest v4.0 upgrade the material_map feature. (yuqk R18 v0.6.12.0) : Suggest v4.0 upgrade the material_map feature. (yuqk R18 v0.6.12.0) Server Time
22 Jan 2025 06:05:16 EST (-0500)
  Suggest v4.0 upgrade the material_map feature. (yuqk R18 v0.6.12.0)  
From: William F Pokorny
Date: 16 Jan 2025 13:18:44
Message: <67894d84@news.povray.org>
The yuqk fork's initial step was renaming this feature! It's now called 
image_indexed_textures{}.

The release notes for the updates are currently:

---

Re-worked the image_indexed_textures{} feature so it more reliably works 
with image formats supporting channel depths > 8 bits or channel values 
 >1.0.

- Texture list entry 0 is always the default background / unmapped 
region texture. Further, rather than wrap when palette registers/indexes 
exceed the number of textures in the list, yuqk maps these also to the 0 
texture entry.

- Adding support for color channel depths > 8 bits by specifying texture 
list of longer than 256 entries. (The 0.0..1.0 red channel multiplier 
becomes 65535.0 rather than always 255.0)

- High dynamic range images, which often have .red or .grey values > 1.0 
in typical use, can exploit this support by using the .red or .grey 
values directly as index values into the texture list.

- Removed a dynamic_cast in render time image value access code, which 
significantly improved performance.

- Additional parse time checks for valid map types, etc.

- Added warp{} parsing support missing always since warp{}s added.

- Rather than casting map image float values to integers, yuqk now 
rounds using std::lround() which makes interpolations more useable / stable.

- Negative .red / .grey channel values, which have never been handled 
explicitly, are now treated as equivalent positive index values after 
rounding.

- Fixed bugs in imageutil.cpp's InterpolateBicubic() and Interp() where 
the code by numerical noise was sometimes flipped into an index 
calculated mode.

---

Attached are two files. A first draft of yuqk's updated documentation 
and an image generated using the example scene which can be found in 
that documentation.

The image shows no interpolation in the upper left. Bi-linear in the 
upper right. Bi-cubic in the lower left. Normalized distance in the 
lower right while added somewhat extreme warp{<'turbulence'>}.

Of course, typical image_indexed_textures{} use would have a MUCH larger 
texture indexing image - and probably not use interpolation at all.

Bill P.


Post a reply to this message


Attachments:
Download 'image_indexed_textures.txt' (12 KB) Download 'image_indexed_textures_story.jpg' (646 KB)

Preview of image 'image_indexed_textures_story.jpg'
image_indexed_textures_story.jpg


 

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.