Troubleshooting

From PixieWiki

Jump to: navigation, search

If you have any problem RIBS which are too big to post on the forums, simply upload your file (left hand side navigation bar). And copy-paste the [[Media:link]] for non-images, or the [[Image:link]] link for images. Put the link on this page with some simple explanation. There are some docs on the front page about how to do formatting etc. Mostly you'll just need to click 'edit this page' and start typing!

Note: There's a single flat namespace for uploads, try to name them something descriptive and unique (maybe prefix your initials if you're not feeling inventive). The wiki will warn you if the file exists already. Don't go ahead unless it's a new version of the same file.

Contents

[edit] AO falls don't know why

Media:AI_mug_bug_ao_falls.zip

[edit] RiObjectInstance takes to much memory

I made scene with object repeated 337 times. As repeating way I choise RiObjectInstance. But pixie takes all memory and goes to swap. Can you make memory manengmen more smart?

Media:AI_high_memory_usage_example.zip

[edit] SegFault don't know why (non bug)

I'm trying to render blender's water simulation and got pixie's segmentation fault. Please describe why this happens.

Image:AI_bug_segFault_water.jpg

Media:AI_bug_segFault_water.zip

--AkhIL 05:43, 25 June 2006 (BST)

Now I know that problem in glass. But I still have no idea how to fix this.

--AkhIL 02:12, 28 June 2006 (BST)

Here's what PRMan says:


N02003 {WARNING} Subdivmesh Plane has duplicate edge connecting vertices 3 and 1 61. [<Splitting>  Object:'Plane'  ]
========8<------------
N02003 {WARNING} Subdivmesh Plane has duplicate edge connecting vertices 150 and  156. [<Splitting>  Object:'Plane'  ]

--Geohar 09:33, 28 June 2006 (BST)

Aha! Fixed by recalculating mesh normals in blender Thanks.

--AkhIL 01:46, 29 June 2006 (BST)

[edit] RiProcedural RunProgram works bad (non bug)

Seems pixie coloses pipe before program done.

Image:AI_bug_RunProgram.jpg

Media:AI_bug_RunProgram.zip

Note: I'm acutally reworking this part at the moment. Currently Pixie passes the parameter block as arguments to the process. It shouldn't, it should be available as std input for the RunProgram. However... the issue you're seeing looks simply like a bad bound... --Geohar 10:38, 8 June 2006 (BST)

Aha! You right. With non zero bonds all works! But can you make object be always visible if it have zero bound? --AkhIL 14:11, 8 June 2006 (BST)

It's not so easy really, the render will unpack a procedural when it hits the projected bounding box. It has no idea what to do if the procedural has a zero bound. If you want it to unpack unconditionally, put [-1e30 1e30 -1e30 1e30 -1e30 1e30] which is pretty much RI_INFINITY as far as pixie is concerned, it will then always see the bounding box as hit and will always unpack it.... --Geohar 14:34, 8 June 2006 (BST)

[edit] Photon maps gets Seg Fault (fixed)

This example gets segfault in final pass:

Media:AI_bug_PhotonSegFault.zip

This example more Interesting. When I render it manualy frame by frame it works well. When I try to render all frames at once last pass gets error.

Media:AI_bug_PhotonSegFault2.zip

Note: There are two things happening here. In your first example, the photonmap name is misspelled in the beauty pass ("caustic.cmp" rather than "caustic.cpn"). This means that pixie tries to read a blank map and crashes. I'll try to issue an error for this case... though it's slightly awkward to detect without a speed penalty if there is also an attribute of the map name connected. The other thing is a real bug - in src/ri/output.cpp, in the COutput::COutput constructor, just after:

deepShadowIndexStart=   0;

add:

sampleOrder         = NULL;
sampleDefaults      = NULL;

And in the destructor, COutput::~COutput change

delete[] sampleOrder;
delete[] sampleDefaults;

to:

if (sampleOrder != NULL)    delete[] sampleOrder;
if (sampleDefaults != NULL) delete[] sampleDefaults;

Hope that helps --Geohar 11:00, 6 June 2006 (BST)

Note: fixed in 1.7.1.

[edit] Creases doesn't support value less then 0.1

I can't represent blender's creases. Seems to Pixie can't render creases less then 0.1

to calculate creases value I use equation wroted below:

maxcrease = 5.0
n - is blender's edge crease from 0 to 254
fa = (1.0/254 * n) ** 5.0 * maxcrease

Image:AI_bug_creases.jpg

Media:AI_bug_creases.zip

Note: Pixie's crease range is 0->10. That will help. This is probably a numerical issue. I'll look into it soon. --Geohar 20:13, 6 June 2006 (BST)

[edit] RiClippingPlane call doesn't work

RiClippingPlane call doesn't work. See RiSpec_3.2 p.26

Scene example: media:AI_bug_clipPlane.rib.zip

[edit] RenderMan Companion Glow Shader (not a bug)

As shown in the following image, the RenderMan Compansion glow shader does not produce correct results in Pixie (it works fine in Aqsis) - the shader should produce a smooth glowing "blob":

Image:Rman_companion_glow.png

for reference, the shader source:

surface glow(float attenuation = 2)
{
        float falloff = I.N;

        if(falloff < 0)
        {
                falloff = falloff * falloff / (I.I * N.N);
                falloff = pow(falloff, attenuation);
                Ci = Cs * falloff;
                Oi = falloff;
        }
        else
        {
                Oi = 0;
        }
}

and the sample RIB:

##RenderMan RIB-Structure 1.0
version 3.03

FrameBegin 1

   #Setup Display
   Display "outputimage" "file" "rgb"
   Format 256 256 1

   #Setup viewing transformation
   Projection "perspective"
   ScreenWindow -0.5 0.5 -0.5 0.5
   Clipping 1 1000
   Rotate -116.344 0 0 1
   Rotate -47.9689 1 0 0
   Rotate -123.69 0 1 0
   Translate 9.74309 -12.9908 -6.49539

   WorldBegin
      AttributeBegin
         Color 1 1 1
         Opacity 1 1 1
         Surface "glow" "constant float attenuation" [ 2 ]
         Sphere 5 -5 5 360
      AttributeEnd
   WorldEnd
FrameEnd

Note: Pixie will set Oi and Ci if it sees you never set it. However, if it sees that you set it anywhere in your shader, Pixie will do nothing with Oi and Ci. To fix, the output, simply alter the else to say

        else
        {
                Ci = Cs;
                Oi = 0;
        }

Or similar. That ensures all execution paths set Ci.

[edit] Bad scope (fixed)

When i try to render scene which have RiProcedural call pixie returns warning. But image looks right.

$ rndr wcDefault-0000.rib
objects/Cube-0000.rib (2): (Cube) Bad scope for "RiFrameEnd"
Bad scope for "RiEnd" 

Media:AI_bad_scope.zip

Note: This appears to be due to an artifact of the way our bison parser is constructed / compiled. There will be a fix in the next release - let me know if you need it sooner. --Geohar 23:35, 29 April 2006 (BST)

Fixed in 1.7.1

[edit] Arbitrary primitive variable don't work (FIXED)

Arbitary object variables passed through primitive parameter list as "vertex float" doesn't work. Moreover parameters passed as "uniform float" makes Segmentation fault.

Image:AI_bug_arbitraryVariable.jpg Rendered with Aqsis. Media:AI_bug_arbitraryVariable.zip

Note: The variable group, once declared as 'uniform float' cannot be inline-declared as 'vertex float'. Additionally - though not totally correct - Pixie treats an inline declaration as shorthand for a declaration. Therefore you can't (currently) mix the same variable with different containers. I will examine fixing the latter of these and printing a more informative message.

Ah. I see what you mean... You have to declare "group" as a varying parameter in the shader for it to be able to recieve different values across the surface. --Geohar 09:08, 26 April 2006 (BST)

With new PIXIE v1.7.1 I have same problem. When I use RiDeclare before passing variable cube shades white. When I try inline declaration "vertex float group" pixie makes same image and returns:

Parameter "vertex float group" container mismatches definition

AQSIS makes right result in both cases. Please check updated scene example. --AkhIL 17:15, 18 June 2006 (BST)

The issue is that you are trying to move a varying (vertex varying) parameter group into a uniform shader parameter. This is illegal. Hence the error message.--Geohar 17:21, 18 June 2006 (BST)

Thanks! With varying float in shader all works right. --AkhIL 17:46, 18 June 2006 (BST)

[edit] Segmentation fault

I have no idea why it hapens. But when I export Suzanne like polygon all works well. Media:AI_bug_segfault.zip

Note: the subdivision surface is malformed - I will add futher verification checks to print an error message.

[edit] Pixies DOF works not like real lenses (FIXED)

When you zoom-in real lenses depth of field decreases. In Aqsis dof work as real. But in Pixie focal lenght don't affect to depth of field.

Image:AI_bug_dof.jpg

Media:AI_bug_dof.zip

With a small fix, Pixie's result is:

Image:DOF25mmPixieFixed.jpg Image:DOF250mmPixieFixed.jpg

To fix this issue, change output.cpp (line 197 in 1.6.3):

cocFactorScreen		=	(float) (aperture*focaldistance / (focaldistance + aperture));

to

cocFactorScreen		=	(float) (imagePlane*aperture*focaldistance / (focaldistance + aperture));

[edit] can't get quadlight works (fixed)

with stochastic hider

Adding quadlight changes nothing or some times rndr returns:

 *** glibc detected *** double free or corruption (out): 0xb7785178 *** Aborted 

with raytrace hider:

Segmentation fault

Media:AI_bug_quadlight.zip

This is fixed in 1.6.3.

[edit] Displacement with creases (fixed)

Bad displacement on subdivs with creases:

Image:AI_bugy_displace_with_creases.jpg

Image:AI bug sd displace creased.zip

Note: This is fixed in the 1.6.1 release

[edit] Textured Displacements (fixed)

Image:3Delighttexdisplace.jpg

Image:pixietexdisplace.jpg

Image:Displace rocks.zip

Looks to be caused by incorrect assessment of the mip-filter level due to a scaling in the geometric parameters u,v. Should be fixed for the next version.

[edit] Ambient Occlusion with Environment Map (fixed)

This is a simple .RIB scene with ambient occlusion and environment map rendered with PIXIE 1.4.7. The rendering shows an environment mapping with a bad conical wrapping.

Image:environment_pixie.jpg

Image:environment_prman.jpg

Media:environment.zip

Note: This bug is not fixed. Pixie 1.7.1 makes same wrong result. --AkhIL 17:37, 18 June 2006 (BST)

Note: This bug is still there in the Pixie 1.7.4 win32 version. --Richard layman 03:47, 28 August 2006 (BST)

Background: I believe the PRMan case is taken from the PRMan global illumination notes. The underlying 'greenandblue.tex" file is not supplied. Basically, using a lat-long mapping, the top part of the map must include the blurring neccesary to correct for the distortion inherent in the projection method. Ie if you blur the top and bottom of the map in an appropriate fassion, you get a far closer result. The issue is that usually latlong maps are predistorted to account for this (perhaps they were captured or preprepared using HDRshop).

For any point on the top of the map, go 180-degrees from that point, along the top of the map. If the color is does not smoothly vary from the previous point, you will see a discontinuity with lat-long environment mapping.

[edit] Arbitrary Output Variables (fixed)

Arbitrary Output Variables from aqsis wiki page doesn't work property with pixie.

Try to render rib from [[1]]

Note: The display call must have the variable declared before it. Quantize should take "rgba" or "z" as an argument. Additionally, AOVS should be assigned to or used in shaders so they are not optimized away.

Problem with quantize of N channel.

"quantize" [128 255 0 255] doesn't work.
This is necessary result rendered with Aqsis And this image rendered from same rib with Pixie
Image:AIaqsisN.jpeg Image:AIpixieN.jpeg

Note:' Pixie fully supports AOV outputs. The bug relating to N has been fixed (in 1.6.1).

[edit] mtorPhong and mtorLambert does not care about incandescence

changes:

mtorLambert:

 ( diffuseCoeff * diffuse(Nf)) + ambientColor*ambient();

change to

 ( diffuseCoeff * diffuse(Nf)) + incandescence + ambientColor*ambient();

mtorPhong:

 (ambientColor + diffuseCoeff*diffuse(Nf)) + specularColor * specular(Nf,-normalize(I),1 / cosPower);

change to

 (ambientColor + diffuseCoeff*diffuse(Nf)) + incandescence + specularColor * specular(Nf,-normalize(I),1 / cosPower);

[edit] Curves primitives does not have correct uv coords

Updated! The coordinates along the hair seems to be fixed in 1.4.16. But still lacks coords across width.

Image:smaragden_hair_pixie.jpg Image:smaragden_hair_aqsis.jpg
This file is rendered with Pixie. This file is rendered with Aqsis.

shader:

Media:hairinfo.sl

Rib:

Media:hair.rib

Tested on Windows 2000 Pixie 1.3.16

As mentioned on the forums, this is an intentional choice to keep curves fast when used for hair-like objects. We intend to add support for thick curves in a future release.

[edit] Raytrace hider segfaults on exit

If the raytrace hider is used, it may segfault when the rendering is stopped prior to full completion. Cause unknown. Crash is in CShadingContext::trace() trace.cpp:135.

[edit] Falsecolor option for raytrace doesn't work

Even when specifying the option, there is no alteration in ouput.

[edit] String Parameters in shadeops?

When using prman or aqsis I have used STRING_DESC to access string parameters in a shadeop, but this doesn't seem to be defined in shadeop.h. What is the correct way of accessing a string parameter in pixie?

Personal tools