蒙特卡洛射线追踪
文章平均质量分 57
蒙特卡洛射线追踪
novanova2009
这个作者很懒,什么都没留下…
展开
-
开源DSMC模拟软件-SPARTA
SPARTA是时间随机的并行稀有气体分析器的缩写。版权所有(2014)Sandia Corporation。根据合同条款 美国政府保留与Sandia Corporation的DE-AC04-94AL85000 本软件的某些权利。该软件遵循GNU通用公共许可证。 -------------------------------------------------- --------------------SPARTA是旨在在并行计算机上高效地运行的直接模拟蒙特卡洛(DSMC)代码 。它是在美国能原创 2021-03-07 20:44:45 · 3351 阅读 · 0 评论 -
geant4导入几何模型的方法
A CAD interface for GEANT4(1)CAD导出为step格式,用geant4的step工具导入geant4(2)cad导出为step格式,由fastCAD转换为gdml格式,由geant4的gdml接口导入geant4(3)cad导出为ply等三角网格、四边形网格格式,然后通过cad工具接口导入geant4(tessalated volume)。作者之一的C.poole开源了CADMesh的源代码,可直接读入PLY, STL, and OBJ files.转换成g.原创 2021-02-17 23:53:31 · 1509 阅读 · 0 评论 -
pbrt学习
pbrt第三版现在可在线免费阅读。http://www.pbr-book.org/3ed-2018/contents.html1.4 pbrt的并行基于射线追踪的算法有很大的并行潜力,并行最大的瓶颈或挑战是如何处理串行部分。比如,加速结构的构建就不容易实现并行。根据amdahl定律,最大并行加速比等于1/s,s为串行计算所占比例。因此,如果串行计算占5%,则最大加速比为20倍。...原创 2020-10-26 22:29:09 · 185 阅读 · 0 评论 -
三角网格八叉树并行蒙特卡罗射线追踪方法
蒙特卡洛射线追踪是指从随机点随机方向发射射线,计算射线与几何结构的交点,根据交点处表面的性质判断射线下一步的行为,一般是漫反射、镜面反射、吸收等等,然后继续追踪射线,直到射线不再与任何几何表面相交,或者相交次数达到了预先设置的阈值。蒙特卡洛射线追踪一般用在复杂几何结构中的问题求解,例如热辐射、太阳能、电磁波传播等。这些情况下,由于结构复杂,射线多次反射,并且表面之间存在遮挡关系,数值求解误差较...原创 2019-03-15 22:11:56 · 1383 阅读 · 0 评论 -
optix入门
射线追踪是embarrassingly parallel/perfectly parallel/pleasingly parallel的问题,就是说基本不用费劲就可以并行化。射线追踪是指从某点发射射线,判断其与几何结构的交点,根据交点对图像进行渲染,或者计算。nvidia optix是基于cuda的api,可充分利用gpu的计算能力对射线追踪进行加速。主要概念和步骤:...原创 2019-03-13 20:35:55 · 7039 阅读 · 0 评论 -
Optix Prime入门
OptiX通常用于表示整个算法实现,无论是渲染,可见性,辐射传输还是其他任何方式。 OptiX的许多用户可编程部分允许应用程序表达复杂的操作,例如着色,这些操作与光线跟踪操作紧密混合,通常递归,并以单射线编程模型表示。通过封装算法的可编程部分并拥有整个算法,OptiX可以在GPU上执行整个算法,并在发布时优化每个新GPU的执行。 有时,只需要光线跟踪功能,例如可见性、平凡光线投射渲...原创 2019-05-25 23:04:33 · 974 阅读 · 7 评论 -
optix prime示例程序
//------------------------------------------------------------------------------int main( int argc, char** argv ){ // set defaults RTPcontexttype contextType = RTP_CONTEXT_TYPE_CPU; RTPbuffer...原创 2019-05-26 23:06:02 · 367 阅读 · 0 评论 -
Optix如何获得ray与场景的所有交点
为了获得沿光线的所有命中,最简单的方法是在每个nearest_hit之后继续射线,直到你不再击中任何东西。在OptiX中意味着到达未命中程序,在OptiX Prime中意味着没有获得命中结果。单独使用OptiX any_hit程序来收集光线上的所有命中点将不适用于使用像SBVH或TRBVH这样的拆分的边界体积层次结构,其中基元可以在较小的BVH中出现多次。这将导致重复的命中。在OptiX ...原创 2019-05-26 23:05:32 · 584 阅读 · 0 评论 -
并行随机数发生器
1 TRNGTRNG 是一个非常灵活的随机数发生器库。它允许顺序和用于并行应用程序。库不依赖于任何特定的通信库。它可以使用消息传递接口 (MPI), OpenMP, 以及与 POSIX线程或任何其他通信库。本节给出了一个关于写作的简短教程并行蒙特卡罗应用与 TRNG 和各种并行编程模型, 如MPI 或 OpenMP。并行随机数产生方法:分块方法block splitting meth...原创 2018-07-15 17:02:34 · 1626 阅读 · 1 评论 -
八叉树搜索-1
翻译版权所有,转载请注明。八叉树由于划分规则且与坐标轴平行,是很常见的空间划分技术。八叉树是射线追踪加速普遍采用的方法,射线穿过八叉树时,可只针对八叉树包含的节点进行求交。与简单的O(MxN)算法相比,这种射线-物体求交测试次数大大减少。理论上说,这是加速射线追踪非常有效的方法。但实践中,对于有大量单元的复杂场景八叉树显然有用,但对于较简单的场景,它开销过大。八...原创 2019-01-06 20:29:37 · 2352 阅读 · 0 评论 -
cgns编译使用
cgns是通用cfd输入输出格式。官网没有编译好的库文件提供,需要自行编译。网上很少有关于cgns库编译的介绍。只能靠自己摸索。cgns 3.3.1提供了cmake文件,可以使用cmake进行配置。然后由vs c++进行编译。此处记录配置和编译过程。1 配置下载解压cgns xxx.zip;tcl/tk:active tcl(这个是cgns tools需要的文件,cgns tool...原创 2018-04-14 23:26:29 · 8864 阅读 · 4 评论 -
hdf5编译、使用
1 编译安装库文件hdf5下载,首先要注册。注册后下载windows下编译好的库,很费时间,只能通过浏览器,连接速度只有十几k/s。编译好的库80M+。也可以下载源码自己编译。编译可参考该指南。https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake首先要安装cmake 3.10+。然后执行源码目录中的ba...原创 2018-04-14 10:08:02 · 5776 阅读 · 1 评论