本节介绍渲染正常结束但产生的图像有问题的情况下所出现的各种问题。
渲染过早结束
导致该问题的一个常见原因是内存不足。
执行下列操作之一:
请参见优化。
- 减少内存使用量。
- 增加系统盘上的交换空间的数量(见下文)。当系统在渲染过程中内存用尽时,会将系统盘上的交换空间用作虚拟内存。
如果问题原因不在于此,请执行下列一项操作或全部操作:
- 在命令行上使用“-N”选项进行渲染。该操作会启用诊断模式,并通知您 SDL 文件的全局设置中不正常。
- 打开 sdl 文件夹中的 .out 文件。正如纹理文件丢失一样,此问题解决起来并不难。
- 打开 errlog 文件(“Utilities”>“Errlog”)并查看消息“rendering error: exited with error code XXX”。“XXX”值是 UNIX 系统错误代码(不要与内部错误代码相混淆)。这些编号是从信号的联机帮助页得来的(只需键入“man 5 signal”即可)。将联机帮助页的编号加上 128,就可以得到退出代码编号。内存不足是 SIGUSR1,联机帮助页指出其编号为 16。因此,退出代码编号则为 128+16=144。分段故障是 128+11=139,依此类推。
增加内存交换空间
问题:增加系统盘上的交换空间量。
注:
要增大系统盘上的交换空间,您必须拥有超级用户访问权限。
- 创建一个文件,使其文件大小代表您希望系统盘上具有的交换空间的数量。
例如,若要创建一个 200 MB 文件,您会在 UNIX Shell 中键入下列内容:
mkfile 200m <filename>
- 使用文本编辑器(如“jot”)打开文件:
/etc/fstab
并将下面的行添加到该文件中:
<path+filename> swap swap pri=2 0 0
- 重新启动计算机,或者在 UNIX Shell 中键入下列内容:
swap -a <filename>
其他可能的补救措施包括:
- 如果该场景使用 BOT 文件,请确保在“Render Globals”窗口中,“Texture Caching”处于打开状态。
如果图像不存在,则加载该图像会花费很长的时间
交互式软件包将尝试在“ALIAS_PIX_SEARCHPATH”指定的所有文件夹中查找图像文件。
减少“ALIAS_PIX_SEARCHPATH”中文件夹的数量。