由于Redshift渲染器使用GPU进行基本的渲染,因此需要先用CPU对场景进行处理,之后再发送给GPU进行渲染,GUP接受后的数据就存储在显存里面。
Automatic Memory Management:自动管理显存的使用,这个只针对贴图缓存、集合体缓存、光线缓存起作用。
NVLink for Volume Grids/Geoments:支持英伟达的NVLink功能,简单的说就是可以两张显卡分担体积网格或者几何体占用的显存。模式有三个一个时自动,一个时打开,还有一个时关闭。自动模式下,先使用其中一张卡,当占用一张卡的显存超过50%则会相应分到一部分到第二张卡。
Percentage of GPU menmor to use:占用显存的百分比,数值是百分数,默认是90%,假如你的显卡显存有10G,那么会有9G显存调用给Redshit进行渲染。一般情况下90的数值已经很高了,除非你显卡的显存很大,你可以提高一些,但是会增加驱动崩溃的风险。
GPU memory inactivity timeout(seconds):显存返还时间,如果停止任何渲染操作并在改时间之后没有再次启动渲染,则释放上面调用的显存。能够自动释放显存。
Irradiance point cloud working tree/Irradiance cache working treereserved memory(MB):辐照点云和辐照缓存的显存占用,这两个选项无法通过开启Automatic Memory Management进行自动调节。一般报错显示这两个缓存空间不够了就可以调节了。默认的128MB应该可以容纳几十万个点,一般调节的递增:128MB增加到256MB或512MB,如果还是无法解决缓存不够的保存,建议买一个高显存的显卡,或者改为暴力GI计算。
Percentage of tree memory used for texture cache:纹理缓存能占用可支配的显存百分比,以上方我们能够使用9G显存为例,那么默认15,则可以使用9G的15%也就是,1.35G的显存分配给纹理缓存。
Maximum GPU Texture cache size(MB):纹理缓存的再次钳制,上面我们已经了解到我们可以使用1.35G显存用于纹理缓存,但是1.35G未免太多了,这会大大浪费显存的使用。所以我们可以调节这里的再次对他进行钳制,默认256M,所以我们最终只有1.35G内的256M的显存用于纹理缓存,具体调节需要配合Feedback Display进行使用。在Feedback Display面板有一个Textures参数如下图所示
B的数值代表了我们当前分配了多少的纹理缓存空间,一上面默认的为例子,256M则我们分配了256M的缓存纹理空间,那么在渲染的时候B的值就是256M。在渲染期间A也会有一个对应的数值,那么A的数值就代表了我们当前场景用了多少缓存。
一般情况下我们先开启Automatic Memory Management功能,让他自动分配纹理缓存。
我们会看到这里的场景实际纹理缓存使用了236M左右,但是我们分配给它590M,因此我们就还可以再减少大约350M的显存空间,也就是分配给它:大约250M就可以了,那么我们就可以关闭掉Automatic Memory Management,自己手动调节Maximum GPU Texture cache size(MB)到250M。那么以此类推。如果我们调节的纹理缓存超过了1.35G,则需要增加Percentage of tree memory used for texture cache的百分比。
Ray reserved memory:光线保留内存:开启自动分配后是关闭的,它可以很好地利用剩下的Geometry(几何体缓存)如上图所示,当前实际利用几何体缓存:142.43M,分配给几何体缓存195.87M。差距并不是很大, 但是一旦我们关闭自动分配。
我们会发现,直接分配给几何体缓存5.71GB,留给Ray(光线计算就只有875.07M)这样就会有大约5.5G的显存浪费,会大大降低渲染速度,那么这时候我们就可以调节Ray reserved memory,给他大约5.5G的一个数值,那么他就会把这部分数值用于光线计算。
显存的合理分配需要配合Feedback Display进行查看,如果不想调整那么可以直接开自动调整即可。但是自动调整只能调整几何体缓存和纹理缓存。