光线追踪:OptiXSDK optixDynamicGeometry

詹令
lealzhan@126.com
2017.9.9

介绍

optixDynamicGeometry compares accel structures for a dynamic scene. A multi level BVH allows faster updates at the cost of slower ray intersections vs. a single level BVH.
— OptixSDK sample: optixDynamicGeometry

本文主要是对OptixSDK的例子optixDynamicGeometry1做一下分析。 这个例子主要是比较了一下Optix提供的两种主要的加速结构的组织模式
multi-acceleration mode - SeparateAccelsLayout
single-acceleration mode - RebuildLayout

源码分析:

RebuildLayout: single-acceleration mode. slower updates, faster ray intersections.
导入mesh时,直接apply transformation到mesh的原始数据上,将mesh和GeometryInstance一一对应后,直接将GeometryInstance挂在geometryGroup下(top_obj).

         GeometryGroup  -- acceletation structure
                   |   
            /               \
           /                 \
GeometryInstance     GeometryInstance

mesh0-transformed   mesh1-transformed

SeparateAccelsLayout: multi-acceleration mode. faster updates, slower ray intersections.
导入mesh,不作用transformation,而是将其和GeometryInstance一一对应,将GeometryInstance挂载在GeometryGroup下, 再将GeometryGroup挂载在Transform节点下,将Transform节点挂载在Group下(top_obj).

           Group  -- acceletation structure   
            |   
          /   \   
        /      \
Transform       Transform    
     |              |    
GeometryGroup    GeometryGroup      -- acceletation structure for each geometry group
    |               |
GeometryInstance  GeometryInstance 

mesh0              mesh1   

结果测试:

A: ray trace when changing camera:(加速结构遍历)
B: geometry transformation(加速结构更新+遍历)

single-acceleration mode: A: 30fps B:10fps
multi-acceleration mode: A: 20fps B:20fps

Reference


  1. optixDynamicGeometry Code ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值