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

推荐订阅源

S
SegmentFault 最新的问题
Spread Privacy
Spread Privacy
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
SecWiki News
SecWiki News
腾讯CDC
P
Privacy International News Feed
Webroot Blog
Webroot Blog
J
Java Code Geeks
爱范儿
爱范儿
A
About on SuperTechFans
S
Secure Thoughts
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
DataBreaches.Net
Cloudbric
Cloudbric
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Security Latest
Security Latest
Forbes - Security
Forbes - Security
小众软件
小众软件
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Threatpost
量子位
MongoDB | Blog
MongoDB | Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Google Online Security Blog
Google Online Security Blog
云风的 BLOG
云风的 BLOG
GbyAI
GbyAI
S
Security @ Cisco Blogs
T
The Exploit Database - CXSecurity.com
Help Net Security
Help Net Security
V
Visual Studio Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 聂微东
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs

博客园 - 大河马和小魔鱼

[zz]dds [zz]Shader programming tips #1 [zz]如何使用effect [论文摘要]Tips and Tricks for D3DX Effects-Based Renders [zt]矩阵和向量的乘法顺序 [论文简要]Integrating Shaders Into the Vision Rendering Engine Depth Bias Planar Shadow Instancing 渲染简要 球面环境贴图 MaxScript 心得1 - 大河马和小魔鱼 - 博客园 Export利器:IGame MAX Script Export/Import 3DS MAX PlugIn 材质和纹理 牛刀小试,Max Script 3DS MAX PlugIn(2) 邂逅Geometry [原创]3DS MAX PlugIn 1 预备役 Novodex2.6.2 布料系统 Novodex,ODE,Tokamak,Bullet,Newton......
原来我一直在做傻事
大河马和小魔鱼 · 2006-11-03 · via 博客园 - 大河马和小魔鱼

前天洗澡的时候突然想到一个想法
似乎我总是在洗澡的时候才有灵感

我给部队做到虚拟战场的项目
由于涉及到一个室外场景的漫游
所以技术的主要难点就在terrain上面了

由于要求显示弹坑,
并且最小直径为1米,
所以最开始的解决方案我想都没想
做了一块3000*3000个网格的地形
用八叉树+基于patch 剔除的Geomipmap LOD,
后来发现其实这样的话效果其实并不好,速度勉强够
后来决定用动态读入的方法
每次只读入视点周围的256*256个网格,
视点在一个方向上移动超过一定距离就再读
这样的效果不错,
速度很快,本来打算如果速度不快 再针对这一小块做lod
看来不需要了,
但是还有一个问题,就是每次只显示有视点周围256*256的地形
那么就有很大一部分是空的
最开始直接想用个体积雾挡住的
后来也是偶然想到一个简单的解决方法,
在这块地形下面再画一块只有4个顶点的3000*3000的地形
因为部队只是需要一块平的地面,所以正好可以用这一块假的terrain
这样2块地形配合起来正好看不出来。

昨天我想到
其实我一直在做傻事
本来弹坑就不是很多
完全没有必要做一块那么大的地形
做这么大一块地形虽然速度上没有问题,但是每次读入的数据还是很大
更好的方法是
每个弹坑动态的生成一个Mesh,这个mesh按照弹坑直径的要求生成
也就是说最大也不过10*10
然后将这个mesh 加入到场景中,
画的时候把深度测试关掉就一切Ok,
这样还有一个好处,弹坑的纹理可以单独指定,
以前的做法都是用glSubTexture2d (似乎是这么写,不记得了)动态的在整个terrain的纹理上修改
由于整块地形是3000*3000 不是2的n次幂
为了简化工作我直接作了一张特大纹理
纹理是一张2048*2048的一张图
拉升也很严重,有人会说opengl2.0支持非2的n次幂纹理
确实,但是glSubTexture2d 那个函数不支持
2048拉升到3000,加上很多弹坑本来就只有1米,2米
对应到纹理的像素 其实只有1-2个像素
现在好了,把弹坑单独提出来做
什么问题都解决了

其实也想起来
刚开始做这个项目的时候
在论坛上看到有人说过类似的方法
无奈当时不当回事
转了个大圈子 还是回到了原地