没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论














CUDA Volume Rendering 简介
: !"
#" $
CUDA Volume Rendering [Part.1 简介]
%&$' 是 ()*$+$
$$
版新加入的
一个范例,主要是直接透过 #)$,-& 来做
%& 的 $。
关于 %&$' 这项技术,可以先去参
考维基百科的说明:「 立体渲染 」。 不过还是大
概提一下,%&$'$实际上在医学方面其实相当普遍;主要是一般
的断层扫描都是一张一张的平面影像,把这些平面影像按照顺序堆叠起来,就
会变成一个 #)$的影像资料(也就是所谓的 %&$')。 %&$
'$就是一种用来绘制这种 #)$影像资料的技术。 ( 应用参考 )

而由于传统的电脑图学都是以多边形的方式来建构、绘制 #)$场景;这点和呈
现 %&$所需要的技术是不同的! 所以 %&$'$没办法直接使
用传统的电脑图学方法来呈现。
而一般来说,常见的 %&$'$有两种概念:第一种是将 %&$
'$建立出多边形的资料,然后再用这些资料还绘图;第二种则是直接拿整个
%&$资料去画,这种方法一般叫做 )$%&$'。
$
在 )$%&$'$又有数种不同的技术,下面列举常见的两种:
Ray casting Slice base
由观测点()往 &$看,每一
条「视线」,都根据某个固定的间距在
%&$中取样,然后依此累算出这条
根据和视线的垂直方向,把 %&$
'$重新取样,产生出多张和视线垂
直的 ;接着再由后而前,依序把这

视线最后会呈现的颜色。
实际上,每一条线会对应到最后呈现的
图上的一个点;所以最后要呈现的解析
度要多高,就得做几次这样的运算。
些 .$用传统的多边形方法来绘制。
上图资料来源: %&$'$$/
而在 ()*$+ 的 .)0 中所提供的 %&$' 范例(专案名称就是
&',档案在 C:\Program Files\NVIDIA Corporation\NVIDIA
CUDA SDK\projects\volumeRender$),就是 $ 的方法;不过,
他藉由 ()*$这套 .)0,可以发挥 %'$/1($的大量平行化的好处,来做
/1($的 $。
程式的基本概念,是把 %&$的资料读到电脑的主记忆体后,当成 #)$
,-&$来 '$到 '$$中,然后再透过 ()*$2$来透过
存取 #)$-&,进行 $$的计算。 而运算的结果,会直接当成
/3$的 &4$5,直接画出来;如此也避免了必须要先把结果由
'$$复制回 $,再送到 /3$'$的传输时
间。
他的程式档有两个:
volumeRender.cu$
主程式、资料读取和 /3$等相关的部分。

volumeRender_kernel.cu$
实际做 $$的 ()*$2。
在 volumeRender.cu 中的 6& 列表如下:
main
$6&。
loadRawFile
用来读取 %&$'$的函式。
在这个范例中,%&$的资料是用 #)$的 *7$档来储存
的。
initPixelBu"e
r
建立 /3$的 -$&4$5,用来对应到 ()*$
$$储存结果的记忆体空间。 也直接拿来画出结
果。
cleanup
清理资料用的。
iDivUp
做除法的无条件进位,用来算 '$大小用的。
initCuda
起始化 ()*$的资料。
主要是把读进来的资料建立成 #)$,-&,以及建立颜色对
应用的 6$6&(包含阵列资料以及 !)$
-&)。
render
把旋转矩阵由 $$复制成 '$上的 $
变数。
然后呼叫 2$函式,进行计算。
display
&$的 2$6&,用来显示用的,每次要更新画

面,都是执行这个函式。
他会计算物体的旋转矩阵,然后再呼叫 '89$来做 $
$计算,最后再把储存了结果的 -$&4$5$
画出来。
reshape
这四个 6&$是 &$的 2$6&。
$是当视窗大小位置改变时会被执行到、$是
滑鼠移动时会被呼叫的、&$是滑鼠按钮会执行的函
式、2'$则是键盘的。
这边不多加解释了。
motion
mouse
keyboard
而在 volumeRender_kernel.cu 中,则是:
intersectBox
计算一条视线和 %&$的 -$的交点,并传回相交的最近
点和最远点。
mul
计算矩阵乘上一个向量。
rgbaFloatToI
nt
把 $四项的 ,转换成一个 $来储存。
d_render
()*$的 '$2$6&。
为每一个像素,用 $$的方法来计算他的颜色。
剩余22页未读,继续阅读
资源评论

- 充充2014-07-22一般了。觉得还有整理的空间。可以更详细的
- 纳兰书语2014-04-17模块解释很详细,不过细节还是看不懂

MicroPhion
- 粉丝: 28
- 资源: 164
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基础算法-python爬楼梯问题
- 某音Web端参数X-Bogus获取算法(逆向分析)
- 头歌答案 C语言程序设计实践 实验二 数据类型与基本操作(1)
- java高校实习生管理系统设计和实现springboot+vue毕业设计源码+数据库mysql代码.rar
- springboot+vue.js辽B代驾管理系统java毕业设计源码+数据库代码.rar
- OceanBase OBCA初级考试认证资料
- java可信捐赠管理系统的设计与开发springboot+vue毕业设计源码+数据库代码.rar
- vue基于Springboot的网上宠物店系统的设计与实现java毕业设计源码+数据库代码.rar
- OceanBase OBCA 部分题目
- vue基于springboot的七彩云南文化旅游网站的设计与实现java毕业设计源码代码+数据库.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
