浮生半日闲
如果我们能时时刻刻都在学习,从观察、聆听、注视和行动中学习,那么你会发现,学习是不断进展,永无过去 | 学习技术不是发财之道 | 学习技术,因为崇尚科学与真理
posts - 37, comments - 38, trackbacks - 0, articles - 0
C++博客
首页
新随笔
联系
管理
聚合
<
2009年2月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
QQ: 32407043
Email: herbert_1987@126.com
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
C++(2)
CEGUI(2)
DirectX(12)
Python(1)
其他(2)
日志(2)
设计模式(9)
数理
游戏开发资讯(2)
随笔档案
2010年7月 (1)
2009年3月 (4)
2009年2月 (2)
2009年1月 (2)
2008年12月 (7)
2008年11月 (15)
2008年5月 (6)
博客连接
Azure Product
Die feuchter Einsamkeit
lovedday
MicroSoftLu
搜索
最新评论
1. re: 求一个点到一条线的垂直交点
很有用
--放大
2. re: 国外游戏设计网站与论坛
评论内容较长,点击标题查看
--essaysreview.com
3. re: 国外游戏设计网站与论坛
评论内容较长,点击标题查看
--click here
4. re: 国外游戏设计网站与论坛
评论内容较长,点击标题查看
--CustomEssays rewiew
5. re: 卡通渲染和水墨渲染[未登录]
请问颜色分层是怎么个意思
--fancy
阅读排行榜
1. STL中用erase()方法遍历删除元素(44970)
2. 国外游戏设计网站与论坛(3650)
3. C/C++禁用危险API(3434)
4. Python中的异常类型(3253)
5. Z Pass 实现 Shadow Volume(3017)
评论排行榜
1. 国外游戏设计网站与论坛(12)
2. STL中用erase()方法遍历删除元素(10)
3. 卡通渲染和水墨渲染(2)
4. 水面反射效果(2)
5. Z Pass 实现 Shadow Volume(2)
制作半球天空
Posted on 2009-02-24 16:32
Herbert
阅读(1790)
评论(0)
编辑
收藏
引用
所属分类:
DirectX
天空比较容易实现,而且一般在渲染过程中占用的资源不多,但在场景渲染中却起着十分重要的作用。如果效果不好会让人觉得像被蒙在一片布幕下面。玩过《古墓丽影——地下世界》以后十分羡慕游戏场景中的天空效果,做得非常真实!
常用的天空盒一般有方形和半球形两种,但方形的天空盒漏洞比较大,很容易被人发现边角的位置。半球的天空盒看上去平滑些,但实现起来比方形的难些,而且如果搞不好,容易被人发现纹理拉伸不均匀。
半球天空盒的实现方法也有多种。一种是把平面卷成管状,使其中一对对边重合,然后把管状的一头的边缘线挤到中点上,压缩成一个半球。
另一种方法是把平面的中点作为半球的最高点,四个边往下凹,形成一个半球状。
两种方法都存在纹理不均匀问题,第一种方法会使得半球顶部的纹理密度很大,四周纹理密度较小;第二种方法会使得平面对角线上的纹理密度大,其它地方密度小。感觉好像第一种的方法的问题没有第二种严重,但第一种方法还存在一个问题是要处理其中重合的对边纹理过度问题。
下面是我用第二种方法实现的天空盒:
上图的天空盒存在很严重的纹理不均匀,因为纹理寻址只是简单的按照平面网格中顶点的位置来确定。
这样会把纹理聚集在平面的对角线上。有一种解决办法是先把网格上的顶点坐标变换到半球形的相应位置,然后在半球的俯视图中确定顶点的纹理寻址。
也就是只取纹理贴图内切圆(假设纹理是正方形的)内部的纹理。
下面是修正纹理寻址后的效果:
比原来的好些了,只是半球底部还有些拉伸的感觉。
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
Z Pass 实现 Shadow Volume
水面反射效果
卡通渲染和水墨渲染
制作半球天空
环境反射效果
HLSL实现蒙皮动画(2)
HLSL实现蒙皮动画(1)
手动创建X文件(3)
手动创建X文件(2)
手动创建X文件(1)
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理