OPTIX使用little tips

*为了方便的调用optix的编译功能,可以使用一个bat文件,然后在VS的外部工具中进行添加

set include=%OPTIX_SDK%/include;%OPTIX_SDK%/include/common;%include%
call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
nvcc --use_fast_math --machine 32 --output-file %1.ptx -ptx %1

* 在使用acos等反三角函数时候,一定要先对参数做一个clamp(-1,1)之间的裁剪,否则会出现黑色点。

* 使用屏蔽和注释的方法可以检验结果的正确性。

* 对于异常结果以不同的颜色来显示输出,用于方便查看。

* isnan函数可以有效检测浮点数是否出错。

* 如果出现很多的噪点,可能是因为浮点误差,特别是在判断大于小于0 的时候。

*出现Optix崩溃的情况,很有可能是数组越界、栈大小超范围、分母为0、各个cu文件的数据结构不一致等。
   比如由球面向球心发射光线时候,光线的起点的y值不能为0,如果为0就会崩溃!
   比如camera的PRD和miss的PRD结构不一致,就会崩溃!

*环境变量OPTIX_API_CAPTURE=./captured_data 可以用来补获API调用,但是会占用极大的空间。(注意:在VS2010中启动程序,是不会capture调用的!)

*在exception函数中,可以用rtPrintDetails()打印出错信息。经常会出现STACK_OVERFLOW的错误。

*如果传入的变量,在OPTIX的程序中值都变成了0,那么要去检查变量的作用范围。如果当前程序中不能访问改变量,那么也不会报错,只是访问到的值都是0.

你可能感兴趣的:(OPTIX使用little tips)