高度图生成地形

博主正在开发一个展示技能的程序,其中包括高度图生成地形、顶点着色、像素着色等多种效果。目前完成了地形生成和光照部分。在生成地形的过程中,起初遇到无法通过顶点着色渲染的问题,后来发现并修正了代码中的错误,成功实现了地形的3D渲染,包括顶点高洛德着色和像素着色的Phong效果。
摘要由CSDN通过智能技术生成

最近一个星期一直在写一个可以用来展示自己技能的程序,计划包含高度图生成地形、顶点着色、像素着色、水面渲染、镜头控制、天空盒子等基础效果,反正想到什么或者学到什么就加进去,尽可能多的把自己会的都展示出来就对了。

 

目前,,恩,截至2分钟前,基本完成了生成地形和地形光照(进度非常慢哈,没办法,,边做边学),在这里,还是写些东西备忘。

事实上地形很容易就能做出来,最开始是直接把高度图读出来的顶点信息存入顶点缓冲的,用固定管道渲染正常,如图1,但是却不能通过顶点着色渲染,死活都只能显示一个背景。

所以查了几本书,找到另一个办法,就是把顶点信息写入一个MESH里面去。在这之前我还以为MESH只能通过外部文件导入生成,原来也是可以控制的啊~方法呢,无非也就是Lock然后写入信息然后Unlock.使用固定管道渲染与之前无异,使用顶点着色也不再只是单纯的背景色,但还是不能显示纹理,只有黑白色的亮度.如下图2.就为这个问题,卡了三四天之久,找了N多资料,然后对照自己的程序检查,都没找出问题来,直到半小时前(也许到发稿时就变成1小时前了),我决定再做一次检查,然后,就发现自己犯了两个非常非常"二"的错误(当然,事前我也想到肯定是一个不经意的地方写错了个单词之类的),一切都在 g_pEffect->SetTexturer("Tex0",g_pTexDiffuse);这短短的一句里,,先是发现Diffuse被我打成了Height(高度图变量),然后又发现Tex0被打成了tex0,....太郁闷了,,修改后正常了,如图3(顶点高洛德着色)以及图4(像素着色,Phong);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值