前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【GAMES101】Lecture 10 纹理应用

【GAMES101】Lecture 10 纹理应用

作者头像
叶茂林
发布2024-01-29 08:49:49
970
发布2024-01-29 08:49:49
举报

纹理应用

我们之前在着色里面讲到这个纹理映射,就是给我们在三维空间中的物体表面贴图对吧,实际上纹理还有很多的用处

在现代的GPU中,这个纹理就等于一块内存加上范围查询或者是滤波操作,它是一种计算像素的通用方法,可以用来表示环境光照、局部的几何信息、体积渲染等等

环境光照

对于来自四面八方的光照,不管是直射光还是反射光,都用一张纹理图把四周的光照信息给记录下来,然后通过纹理映射渲染到这个物体上

这个光照是来着四面八方的,用一个球可以记录下来各种方向的光照

但是这个球在展开成纹理图的时候靠近两个端点的地方会扭曲

但是可以把球映射到一个立方体上

这样得到的纹理图扭曲的部分就会减少

凹凸表面

这个纹理不仅仅可以用来表示这个物体表面的颜色,还可以用来造假物体表面的凹凸程度,通过纹理表示这个每个三角形的相对高度偏移量(在法线方向上的)或者直接存储这个法线来改变这个像素的渲染效果来营造一种凹凸效果,称之为凹凸贴图或者法线贴图

比如在二维中,通过计算两个点之间的这个相对高度,来计算出这个点的切线方向,进而求出点的法线方向

而对于三维空间中的纹理(u,v),可以先计算出u和v方向上的切线,然后合起来当成法线方向

上面都是造假的效果,当然可以直接通过去改变每个三维物体的点的位置来形成真正的凹凸效果,这种叫位移贴图,当然前提是这个三维物体的模型要足够精细,有足够多的这个三角形来跟得上这个纹理变化的速度

那能不能先拿一个粗糙一点的模型、这个三角形比较少的来做,然后位移贴图的过程中发现需要将这个三角形进一步拆分成多个小三角形的时候再继续拆分,这个就是另一套图形学api叫direct x做的,它使用了动态的曲面细分

程序纹理

我们之前说的纹理贴图都是在物体的表面,实际上呢,这个纹理也可以贴到物体内部去,就是我这整一个物体都是有内涵的,像这个切西瓜一样,切开也能看到满满的内部细节,这个实际上呢没有生成这个三维的纹理图,而是去定义一个三维空间的噪声函数,对于每个点都会计算出一个噪声值,这个叫程序纹理或者是过程化纹理

存储预计算信息

这个纹理还可以用来存储一些提前计算好的信息,比如说这个局部的阴影,这个叫环境光遮蔽,就可以提前算好放在这个纹理这里,然后渲染直接用

体渲染

那这里就是说到这个三维的纹理了,比分说这个CT、核磁共振可视化,那就是需要记录这个三维的信息,这个存储到纹理上,就可以直接渲染

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 纹理应用
  • 环境光照
  • 凹凸表面
  • 程序纹理
  • 存储预计算信息
  • 体渲染
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档