没有合适的资源?快使用搜索试试~ 我知道了~
18308045_谷正阳_个人报告1
需积分: 0 0 下载量 97 浏览量
2022-08-03
22:08:32
上传
评论
收藏 1.26MB PDF 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/86311640/0001-b99da9ad7e122483ad107b4b64fada88_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
20页
原理简介.实验 .场景设置.更多球数量的实现.结果 .基础版本的光线追踪的大致流程是:将图像的每个像素视作射入摄像头的每一束光线,串行地计算每个射入光线的颜色;
资源详情
资源评论
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86311640/bg1.jpg)
School of Data and Computer Science, Sun Yat-sen University
CUDA 和 BVH
18308045 Zhengyang Gu
January 2, 2021
Contents
1 Abstract 3
2 CUDA 3
2.1 实现要点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 写图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 浮点数精度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.3 STL 的数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.4 随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.5 数学函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.6 尾递归优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 实验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 场景设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 block 形状确定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 BVH 14
3.1 原理简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1
![](https://csdnimg.cn/release/download_crawler_static/86311640/bg2.jpg)
3.1.1 BVH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 AABB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.3 构建 BVH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 实验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.1 场景设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2 更多球数量的实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.3 结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2
![](https://csdnimg.cn/release/download_crawler_static/86311640/bg3.jpg)
1 Abstract
基础版本的光线追踪的大致流程是:将图像的每个像素视作射入摄像头的每一束光线,串行地计
算每个射入光线的颜色;计算射入光线时需要遍历全部的物体以获得光线最近接触物体的一些信息
来进行后续计算。这两个点就分别是 CUDA 和 BVH 所要优化的地方。
2 CUDA
由于每个射入光线是没有依赖关系的,所以理想情况下可以对每个射入光线并行计算。在这里我
用 CUDA 来实现射入光线间的并行。
2.1 实现要点
2.1.1 写图像
写图像对每个像素点是有顺序要求的,要求从左上角一行行写到右下角。而最初的实现是将计算
射入光线颜色和写像素点两个步骤合在一起的,即每算完一个射入光线就会写一个像素点:
1 // Render
2
3 std::cout << "P3\n" << image_width << "" << image_height << "\n255\n";
4
5 for
(
int
j = image_height−1; j >= 0; −−j) {
6 std::cerr << "\rScanlinesremaining:" << j << '' << std::flush;
7 for (int i = 0; i < image_width; ++i) {
8 color pixel_color(0, 0, 0);
9 for (int s = 0; s < samples_per_pixel; ++s) {
10 auto u = (i + random_double()) / (image_width−1);
11 auto v = (j + random_double()) / (image_height−1);
12 ray r = cam.get_ray(u, v);
13 pixel_color += ray_color(r, world, max_depth);
14 }
15 write_color(std::cout, pixel_color, samples_per_pixel);
16 }
17 }
write_color 即是将像素点写入流。这样不利于并行。这里我将这两个步骤分开操作,先并行地算完
所有像素点的颜色,再串行地写入图像:
1 // Output FB as Image
2 std::cout << "P3\n" << image_width << '' << image_height << "\n255\n";
3
剩余19页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![avatar](https://profile-avatar.csdnimg.cn/5e860b1d5a0e4685bd4384b19d9f266b_weixin_35801916.jpg!1)
宝贝的麻麻
- 粉丝: 35
- 资源: 294
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0