POV-Ray : Newsgroups : povray.text.scene-files : CIELUV Server Time
28 Mar 2024 15:57:45 EDT (-0400)
  CIELUV (Message 1 to 7 of 7)  
From: Mike Horvath
Subject: CIELUV
Date: 6 Dec 2016 02:05:34
Message: <5846633e@news.povray.org>
I am having trouble rendering the attached scene without artifacts and 
gaps in the isosurface. I already increased the scale of the scene by 
200 and the max_gradient of the isosurface to 100. Anyone have any tips?

Mike


Post a reply to this message


Attachments:
Download 'cieluv_color_solid_cube_isosurface.pov.txt' (13 KB)

From: Mike Horvath
Subject: Re: CIELUV
Date: 6 Dec 2016 16:51:40
Message: <584732ec$1@news.povray.org>
On 12/6/2016 2:05 AM, Mike Horvath wrote:
> I am having trouble rendering the attached scene without artifacts and
> gaps in the isosurface. I already increased the scale of the scene by
> 200 and the max_gradient of the isosurface to 100. Anyone have any tips?
>
> Mike

If you get an error about the missing image maps, you can ignore it and 
delete the polygons.

Mike


Post a reply to this message

From: Mike Horvath
Subject: Re: CIELUV
Date: 6 Dec 2016 22:48:26
Message: <5847868a$1@news.povray.org>
On 12/6/2016 2:05 AM, Mike Horvath wrote:
> I am having trouble rendering the attached scene without artifacts and
> gaps in the isosurface. I already increased the scale of the scene by
> 200 and the max_gradient of the isosurface to 100. Anyone have any tips?
>
> Mike

I tried with Wikipedia's conversion formula as well, with no difference 
in the render.

// Wikipedia calculations
#declare funcLUV2XYZu = function(L,U,V) {U/13/L + uPrime}
#declare funcLUV2XYZv = function(L,U,V) {V/13/L + vPrime}
#declare funcLUV2XYZa2 = function(L,U,V) {XYZWhiteReference2 * select(8 
- L, pow((L + 16)/116, 3), L * pow(3/29, 3))}
#declare funcLUV2XYZa1 = function(L,U,V) {funcLUV2XYZa2(L,U,V) * 9/4 * 
funcLUV2XYZu(L,U,V)/funcLUV2XYZv(L,U,V)}
#declare funcLUV2XYZa3 = function(L,U,V) {funcLUV2XYZa2(L,U,V) * (12 - 3 
* funcLUV2XYZu(L,U,V) - 20 * funcLUV2XYZv(L,U,V))/4/funcLUV2XYZv(L,U,V)}

Mike


Post a reply to this message

From: clipka
Subject: Re: CIELUV
Date: 6 Dec 2016 23:55:18
Message: <58479636@news.povray.org>
Am 06.12.2016 um 08:05 schrieb Mike Horvath:
> I am having trouble rendering the attached scene without artifacts and
> gaps in the isosurface. I already increased the scale of the scene by
> 200 and the max_gradient of the isosurface to 100. Anyone have any tips?

You seem to be running into /some/ kind of problem when the RGB values
get excessively low.

Clipping the C parameter of the fD function to some near-zero negative
value seems to do the trick:

    #declare fClip = function(X,A) {select(X-A,A,X)}
    #declare fD = function(C) {abs(fClip(C,-0.1)-0.5)-0.5}

This lets you get away with a max_gradient of 20.

(You still have a coincident surfaces problem between the isosurface and
the box, but I guess you can figure that one out yourself.)


Post a reply to this message

From: Mike Horvath
Subject: Re: CIELUV
Date: 7 Dec 2016 16:19:59
Message: <58487cff$1@news.povray.org>
On 12/6/2016 11:55 PM, clipka wrote:
>     #declare fClip = function(X,A) {select(X-A,A,X)}
>     #declare fD = function(C) {abs(fClip(C,-0.1)-0.5)-0.5}

That helped, thanks. I still had to raise max_gradient to get rid o 
every artifact though.

Mike


Post a reply to this message

From: Mike Horvath
Subject: Re: CIELUV
Date: 7 Dec 2016 20:41:38
Message: <5848ba52$1@news.povray.org>
On 12/6/2016 11:55 PM, clipka wrote:
> Am 06.12.2016 um 08:05 schrieb Mike Horvath:
>> I am having trouble rendering the attached scene without artifacts and
>> gaps in the isosurface. I already increased the scale of the scene by
>> 200 and the max_gradient of the isosurface to 100. Anyone have any tips?
>
> You seem to be running into /some/ kind of problem when the RGB values
> get excessively low.
>
> Clipping the C parameter of the fD function to some near-zero negative
> value seems to do the trick:
>
>     #declare fClip = function(X,A) {select(X-A,A,X)}
>     #declare fD = function(C) {abs(fClip(C,-0.1)-0.5)-0.5}
>
> This lets you get away with a max_gradient of 20.
>
> (You still have a coincident surfaces problem between the isosurface and
> the box, but I guess you can figure that one out yourself.)
>

I changed the camera angle and the problem reappeared.

camera
{
//	#local cam_distance	= 40;	// render at 8192x8192
//	#local cam_planesize	= 4;	// render at 8192x8192
	#local cam_distance	= 17;
	#local cam_planesize	= 1.7;
//	#local cam_distance	= 20;	// render at 4096x4096
//	#local cam_planesize	= 2;	// render at 4096x4096
	#local cam_aspectratio	= image_width/image_height;
//	orthographic
	location	-z * cam_distance
	direction	+z * cam_distance
	right		+x * cam_planesize*cam_aspectratio
	up		+y * cam_planesize
	rotate		+x * asind(tand(30))
//	rotate		+x * 90
	rotate		-y * 045
//	rotate		+y * 180
	rotate		+y * RotateAmount
	translate	1/2
	scale		ScaleAmount
}

max_gradient is set to 200, and I am using your revised fD function.

Mike


Post a reply to this message

From: Mike Horvath
Subject: Re: CIELUV
Date: 7 Dec 2016 22:43:07
Message: <5848d6cb$1@news.povray.org>
On 12/7/2016 8:41 PM, Mike Horvath wrote:
> On 12/6/2016 11:55 PM, clipka wrote:
>> Am 06.12.2016 um 08:05 schrieb Mike Horvath:
>>> I am having trouble rendering the attached scene without artifacts and
>>> gaps in the isosurface. I already increased the scale of the scene by
>>> 200 and the max_gradient of the isosurface to 100. Anyone have any tips?
>>
>> You seem to be running into /some/ kind of problem when the RGB values
>> get excessively low.
>>
>> Clipping the C parameter of the fD function to some near-zero negative
>> value seems to do the trick:
>>
>>     #declare fClip = function(X,A) {select(X-A,A,X)}
>>     #declare fD = function(C) {abs(fClip(C,-0.1)-0.5)-0.5}
>>
>> This lets you get away with a max_gradient of 20.
>>
>> (You still have a coincident surfaces problem between the isosurface and
>> the box, but I guess you can figure that one out yourself.)
>>
>
> I changed the camera angle and the problem reappeared.
>
> camera
> {
> //    #local cam_distance    = 40;    // render at 8192x8192
> //    #local cam_planesize    = 4;    // render at 8192x8192
>     #local cam_distance    = 17;
>     #local cam_planesize    = 1.7;
> //    #local cam_distance    = 20;    // render at 4096x4096
> //    #local cam_planesize    = 2;    // render at 4096x4096
>     #local cam_aspectratio    = image_width/image_height;
> //    orthographic
>     location    -z * cam_distance
>     direction    +z * cam_distance
>     right        +x * cam_planesize*cam_aspectratio
>     up        +y * cam_planesize
>     rotate        +x * asind(tand(30))
> //    rotate        +x * 90
>     rotate        -y * 045
> //    rotate        +y * 180
>     rotate        +y * RotateAmount
>     translate    1/2
>     scale        ScaleAmount
> }
>
> max_gradient is set to 200, and I am using your revised fD function.
>
> Mike
>


And seen from directly above the isosurface disappears completely.

Mike


Post a reply to this message

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