惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - I Believe

哲理 Win PE(帮老马研究下) TCP/IP协议基础 connect by prior Gis基础知识 javascript和jscript的区别 javascript常用代码大全(转贴) - I Believe - 博客园 正则表达式 名言 div和span 面向对象 window.event.srcElement document.all HTML语言的发展 C/S和B/S 微软Visual Studio2005开发工具路线图详解 (转发) 空间坐标系统的种类 OLE和activex 励志篇(程序员)
三维场景中的实时动态云彩绘制方法
I Believe · 2007-03-31 · via 博客园 - I Believe
摘要:
  本文一种介绍了在三维虚拟场景中实时绘制动态的云彩方法,在室外场景中云彩是提供三维真实感的重要图素之一,由于云彩变化多端,形状多样,没有规则,完全逼真实时地绘制云彩几乎是不可实现的,常见的云彩绘制方法是使用天空体贴图[1,2],但天空体贴图的绘制方法逼真度较差,云彩缺乏层次感和变化,本文设计了用多层公告板动态模拟云彩的方法,实践中效果较好。
 
  关键词:三维场景,实时动态,云彩绘制,公告板
 
  前言
  云彩是三维室外模拟场景中获得真实感的重要图素,由于云彩的多变,形状无规则,用普通的多边形和粒子系统描述云彩几乎是不可实现的,这样会产生数量巨大的多边形,令PC级别的计算机无法实时绘制,当前常见的云彩绘制方法是使用天空体贴图,天空体贴图实际上将天空简化成矩形体或球形体,人们在地球上看到好像是天空体的内表面,通过将云彩的照片直接贴在天空体的内表面模拟天空效果,能够产生一定逼真度的天空效果,突出优点是天空的模型很简单,可以提供很好的实时性,但由于云彩贴在一个表面上,缺乏距离层次感和云彩之间相对运动感容易被看出是一种平面云彩的效果,对要求较高的场合逼真度欠佳,本文设计的云彩绘制方法从增加云彩的层次感和动态感出发改进了天空体的方法,实际运行中可以看出逼真度有大幅度提高,实时性仍然较好。
  1、天空体方法
  比较简单的天空体是矩形体,一个矩形体共有6个面,扣除底面剩5个面,每个面分成2个三角形,这样一个天空只要处理10个三角形,实时性能很好,但矩形天空体在矩形的边角处的失真很大,
图1 半球形天空的网格结构
  可以非常明显地看出边角处由两个垂直的平面构成。比较好的天空体是用半球体,如图1所示,半球体的天空消除了平面角度90度突变,增加了真实感,但半球体需要由较多的三角形构成,实时性能稍差,在天空体上贴云彩照片后的效果如图2,天空体生成的天空效果如图3
图2 半球形天空体贴图效果
  
  图3 天空体生成的天空效果
  比较容易看出天空中的云彩好像位于同一个水平面上,天空显得比较薄。
 
  2、多公告板方法
  天空体造成云彩逼真度较低的原因在于将云彩照片贴于一个接近平面的面上,仅用一个面模拟具有很大范围,具有深度层次感的天空,另外云彩照片是一个整体的大照片,云彩之间的位置关系是静止的,缺乏变化,只能给出一个静止天空效果,这些和自然界的真实天空都相距较大。本文根据天空体这些不足设计了由多公告板组成云彩群,可以天空体的一些固有的缺点,公告板[3]是一种常用三维绘图技术,主要用于模拟外形很复杂的物体,对于外形很复杂的物体用多边形模拟会产生大量的三角形严重降低系统的实时性能,公共板技术指用一个简单的平面矩形贴上复杂三 维物体的照片模拟三维物体,边缘采用透明贴图技术模拟复杂三维物体的不规则边缘,为了不让观察者看平面扁平的一侧,公告板必须跟随观察视线转动,让观察者只能看到平面的正面,而不能看到侧面,这样公告板就能永远显示复杂三维物体的正面,具有模拟复杂三维物体的能力,比如三维场景中的树木用公告板绘制效果就比较好,如图4。
图4 公告板示意图
  由于云彩也是一种复杂的三维物体,因此也适合采用公告板绘制,为了表现逼真的云彩效果本文设计了多公告板绘制动态云彩的方法。
  首先,单块云彩和云彩之间采用独立的公告板,使云彩之间的相对运动和相对尺寸变化成为可能,由于单块云彩采用独立的公告板,而公告板位置可以独立改变,因此通过公告板位置之间自由设置,少量的单块云彩可以通过组合生成复杂多样,形状不重合大量天空效果,单块云彩和云彩之间可以互相重叠一部分,通过颜色融合技术重叠的部分不会被观察者发觉,程序实现表明,只要有三个单块云彩以上通过多公告板(公共板取128个,可以重复使用同一种云彩照片)的组合,颜色融合,尺寸放缩可以产生足够多样的天空,观察者无法发觉复杂的天空只是由少数几块云彩组成。单块云彩照片可以从照片种挑选出来。
图5 高程数据加入地形网格中
  其次,云彩在天空中的分布需要有一定的规律,由于云彩离地面有较高的高度,一般的第一人称三维场景是不能够到云彩的,因此云彩要一直保持远离观察者,考虑的三维场景的实时性,一般程序实现时会人为地限制限制三维场景的范围,如果按真实的比例和位置绘制云彩,云彩的往往超出三维场景的限制范围,得到的效果是三维场景中无法看到云彩,因此一般会采用非真实比例绘制云彩,云彩的高度较低,位置离观察者较近,这样带来的问题是观察者较大范围运动时会够到云彩,这是很不真实的,即使是真实的情况,比如观察者乘坐在飞机上,但由于三维场景中云彩只是用公告板模拟的,如果观察者离云彩过近就会发现云彩实际是平面的,这样的效果也会很差,因此程序中要避免观测者接近云彩。本文的做法是让云彩总是分布在以观察者为中心,一定半径的一个上半球面上,观察者改变位置时,云彩也要更改位置,让观察永远无法接近云彩。
图5 多公告板云彩示意图
  再次,由于云彩由独立的公告板绘制,公告板的数量可以控制云彩的稠密程度,云彩的稠密程度可以动态更改,通过添加公告板或减少公告板即可实现,但是不能硬性添加和删除公告板,硬性添加和删除公告板带来的视觉效果是云彩的突然出现和消失,这是不符合自然规律的。软性添加和删除公告板的方法是通过设置公告板的透明度,在公告板出现和消失的过程中令公告板从完全透明到不透明渐变,可以消除云彩突然出现和消失的现象,获得比较真实的云彩稠密度渐变结果。
  2、结束语
  本文设计的多公告板动态云彩绘制方法和天空体方法相比云彩的逼真度有了大幅度提高,实际应用中表明本方法系统开销较小,实时性能良好,达到了预期的目标,实际效果如图5。
图5 多公告板云彩实际效果