POV-Ray : Newsgroups : povray.text.scene-files : CIELUV Server Time: 19 Dec 2018 13:32:30 GMT
 CIELUV (Message 1 to 7 of 7)
 From: Mike Horvath Subject: CIELUV Date: 6 Dec 2016 07: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

Attachments:

 From: Mike Horvath Subject: Re: CIELUV Date: 6 Dec 2016 21: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
 From: Mike Horvath Subject: Re: CIELUV Date: 7 Dec 2016 03: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
 From: clipka Subject: Re: CIELUV Date: 7 Dec 2016 04: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.)
 From: Mike Horvath Subject: Re: CIELUV Date: 7 Dec 2016 21: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
 From: Mike Horvath Subject: Re: CIELUV Date: 8 Dec 2016 01: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
 From: Mike Horvath Subject: Re: CIELUV Date: 8 Dec 2016 03: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