ArenAK的博客

3D图形、虚拟现实 / 3D Computer Graphics,Virtual Reality

   :: 首页 ::  :: 联系 :: 订阅 订阅 :: 管理 ::
  21 随笔 :: 0 文章 :: 44 评论 :: 0 Trackbacks
    刚开始写博,如果有什么不合适的地方,请大家多指教,谢谢!

    看到EarthScultor中有个例子,地形很协调漂亮,这几天自己用Ogre实现了一下,效果不错。

    其中用了HeightMap、ColorMap、LightMap,还有四张DetailMap,在ogre的网站中称这种用多个DetailMap的手段为Splatting。

    这里有关于Splatting的讲解:http://www.gamedev.net/reference/articles/article2238.asp

    下面是我实现的结果,先看EarthSculptor中的原图:
   
    这是我做的结果:
   
   下面是这个网格对应的Solid模式:
   
    最后再看一下细节部分:
   
    这个实现与EarthSculptor中的区别是我的网格是分块LOD的(因为我基于Ogre),而EarthSculptor则是一致连续的LOD。

刚刚开始用YouTube,今天(2007.12.7)把这个视频加上来。


ps:感谢宋给我介绍EarthSculptor这个软件.
--ArenAK--
posted on 2007-10-23 13:41 ArenAK 阅读(920) 评论(15)  编辑 收藏 所属分类: Graphics

评论

#1楼  2007-10-23 13:43 weef [未注册用户]
这是个啥,貌似不该发在首页吧
  回复  引用  查看    

#2楼 [楼主] 2007-10-23 13:45 ChengCheng      
我刚开始写,还不太清楚规则,呵呵 Sorry
  回复  引用  查看    

#3楼  2007-10-23 14:03 neoragex2002      
不错:) 可以发到图形学小组里面,那里同好很多,光看首页的人很少懂这个的
  回复  引用  查看    

#4楼  2007-10-27 00:58 sssa2000 [未注册用户]
纹理混合?
  回复  引用  查看    

#5楼 [楼主] 2007-10-27 11:37 ArenAK      
@sssa2000
是多重纹理,我用Cg实现的。有一张单独的Coverage图来表明在地形上每个地方各个纹理所占的成分。
  回复  引用  查看    

#6楼  2007-10-28 00:40 sssa2000 [未注册用户]
没必要用单独的纹理,用一个alpha分量就OK了
  回复  引用  查看    

#7楼 [楼主] 2007-10-28 12:43 ArenAK      
@sssa2000
我想那样是不行的,除非我没能理解你的意思。
比如我在一片地形上可以多次重复贴一张帖图(比如草地帖图),只用Alpha分量存储是办不到的,而如果用单独一张帖图的R分量来表示其分布情况就可以了,这样草地帖图依旧可以重复。
  回复  引用  查看    

http://www.carbinch.com/terrain.png

这位老大,我也学着做EarthSculptor自带的例子,这里是效果图。我是第一次写Cg,但是在光照贴图和细节贴图上我不知道怎么处理,在google上也没找到用shader做地形细节和光照贴图的代码,请问您有相关的资料么?谢谢!

下面是我看了您文章中链结所说的方法写的ps,效果就是前面地址中的效果:

float4 ret=tex2D(surface,texCoord);
float4 light=tex2D(lightmap,texCoord);
float4 alphaBlender=tex2D(alpha,texCoord);
float4 detailColor=0;

detailColor=tex2D(detail_1,texCoord)*alphaBlender.x;

detailColor=lerp(detailColor,tex2D(detail_2,texCoord),alphaBlender.y);
detailColor=lerp(detailColor,tex2D(detail_3,texCoord),alphaBlender.z);
detailColor=lerp(detailColor,tex2D(detail_4,texCoord),alphaBlender.w);

return ((ret+detailColor)/2)*light;
  回复  引用  查看    

我也摸索出来了,呵呵
  回复  引用  查看    

#10楼 [楼主] 2008-01-10 19:13 ArenAK      
@龍子龍孫:
祝贺,多交流:)
  回复  引用  查看    

#11楼  2008-01-27 10:51 hkfans [未注册用户]
大哥,能不能把原代码 发一份给我,或者能不能说下怎么实现多细节纹理混合的?

My-Email: hk5688@yeah.net

我现在想OGRE实现多细节的地形,但是我看OGRE 提供的DEMO 只有一个细节纹理 ,不知道怎么处理多细节纹理,大哥,帮帮忙,谢了~~
  回复  引用  查看    

#12楼  2008-04-18 09:36 yayaigo [未注册用户]
我也想OGRE实现多细节的地形。
可以寄給我一份嗎? Thanks~
My-Email: right2000tw@yahoo.com.tw

  回复  引用  查看    

#13楼  2008-04-18 09:38 yayaigo [未注册用户]
我想要知道你怎麼寫Ogre的code..
  回复  引用  查看    

#14楼 [楼主] 2008-04-18 21:55 ArenAK      
@yayaigo
我会在近两天将代码放到博客上,请留意下载:)

  回复  引用  查看    

#15楼  2008-04-19 12:48 yayaigo [未注册用户]
我是有用earthscapltor输出texture和height map,
用Ogre code 秀出来,可是程式结果跟EarthScapltor结果有段距离,
height结果差不多,但texture结果差很多,不知道你怎么设定terrain.cfg的?

另外一个问题是,
我是用TerrainSceneManager,
听我主管说,要OctreeSceneManager,效能比较好。
而且EarthScapltor工具输出texture,是light,color,detail都合成一张,
但图档512*512(5ooKB),只用一张的话,Camera拉近就很丑,
如果用ETM,他是拆成好六张detail texture,细节度较好,
而且是用OctreeSceneManager。
能够有办法写code,分成四张detail textures 绘制吗?

  回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-01-24 22:50 编辑过
 
向地震灾区捐赠爱心