Thanks, Nathan!
> On Jun 9, 2023, at 3:32 PM, Nathan Rusch <nathanru...@gmail.com> wrote: > > Added https://github.com/OpenImageIO/oiio/issues/3873 > > > On 6/8/2023 7:12 PM, Larry Gritz wrote: >> Yes, I am convinced that IBA::normalize() would be useful to add. >> >> 🎣 Mackerel! >> >> (somebody should start by filing an issue so we don't forget about this >> potential enhancement) >> >> >> On Thu, Jun 8, 2023 at 7:08 PM Vladlen Erium <shaam...@icloud.com >> <mailto:shaam...@icloud.com>> wrote: >>> Thanx Larry! >>> >>> I definitely will check ImageBuf::Iterator. And do my best. >>> Common or not, but if you'll check some of 3D format parsers, you can find >>> that they are by default normalize vertices normals. And even if most 3D >>> DCC apps do the same with normal maps inputs, and most normal maps >>> generator output normalized data, it still a good to have this function in >>> openimageio, well, just in case. :D >>> >>>> Hi, Vlad. >>>> >>>> That's probably the simplest approach with the existing set of IBA >>>> functions, yes. Maybe there is some optimizing you can do around the edges >>>> -- like, `mul(img,img)` may be faster than `pow(img,2.0)`, I'm not sure, >>>> and definitely you want to use the variety of IBA functions that takes a >>>> destination image rather than returning an ImageBuf, in order to minimize >>>> needless buffer copying. But those obvious tricks will only get you so far. >>>> >>>> If you're doing this a lot and it's performance critical, a better way >>>> would be to write it as a single function that uses ImageBuf::Iterator to >>>> traverse the image and do all the operations at once for each pixel, with >>>> no extra buffer copies. Looking at the source code to any of the usual IBA >>>> functions that take one input image and produce one output image will >>>> provide you with a good example to copy and change the guts to make your >>>> new function. >>>> >>>> I don't recall anybody asking for this particular thing before, but if you >>>> think it is a commonly needed operation, then by all means propose a PR to >>>> add this new function after you've implemented it. >>>> >>>> >>>> >>>> On Sun, Jun 4, 2023 at 6:28 PM Vladlen Erium <v...@hdri.xyz >>>> <mailto:v...@hdri.xyz>> wrote: >>>>> What should be most efficient way to implement normalizing vector data >>>>> images (normals) using ImageBuffAlgo? >>>>> >>>>> For this moment I only see the way to do this in four steps. >>>>> ImageBuffAlgo::madd for [0.0,1.0] -> [-1.0,1.0] >>>>> ImageBuffAlgo::pow for power of 2 >>>>> ImageBuffAlgo::sum_channels for vector magnitude >>>>> ImageBuffAlgo::div (sec and magnitude) to normalize vector length >>>>> ImageBuffAlgo::madd for normalize to [0.0, 1.0] range. >>>>> >>>>> This not only required to make so many steps but also required a lot of >>>>> temporary buffers, that for huge textures can required lot of memory. >>>>> When all steps can be done per pixel and perfectly parallelized (shaders, >>>>> cuda). >>>>> >>>>> Maybe I missed some OIIO functions? 🤔 >>>>> >>>>> Best regards: >>>>> Vlad >>>>> >>>>> PS: btw, looks like Google completely filter out all Larry messages if >>>>> Gmail used for subscription to this mailing list. They even not in spam >>>>> folder, where mail list messages quite often can be moved 😒 >>>>> _______________________________________________ >>>>> Oiio-dev mailing list >>>>> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org> >>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >>>> >>>> >>>> >>>> -- >>>> Larry Gritz >>>> l...@imageworks.com <mailto:l...@imageworks.com> >>>> _______________________________________________ >>>> Oiio-dev mailing list >>>> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org> >>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >>> >>> >>> >>> _______________________________________________ >>> Oiio-dev mailing list >>> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org> >>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >> >> >> -- >> Larry Gritz >> l...@imageworks.com <mailto:l...@imageworks.com> >> >> _______________________________________________ >> Oiio-dev mailing list >> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org> >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > > _______________________________________________ > Oiio-dev mailing list > Oiio-dev@lists.openimageio.org > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org -- Larry Gritz l...@larrygritz.com
_______________________________________________ Oiio-dev mailing list Oiio-dev@lists.openimageio.org http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org