胡说八道
学而不思则罔,思而不学则殆
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
132 随笔 :: 0 文章 :: 58 评论 :: 1 Trackbacks
有层次感的草的渲染方法
想法是基于Parallax Mapping,首先计算在TextureSpace中的ViewDir,然后根据这个ViewDir和假设的多个TextureLayer的高度偏移计算出每个Texture的坐标偏移.
这样就能在一个平面上作出能根据视点的变化来模拟多个层次的草.
上面的三张图是使用了3层Texture的三个角度的截图,注意红色框内的草在不同的角度观察下的情况.
posted on 2005-07-18 00:13
胡说八道
阅读(920)
评论(1)
编辑
收藏
所属分类:
自己的作品
评论
#1楼
2005-07-19 17:12
sevecol [未注册用户]
hlsl:
struct VS_INPUT
{
float4 Pos : POSITION;
float3 Normal : NORMAL;
float3 TexCoord : TEXCOORD0;
float3 Tangent : TEXCOORD1;
};
struct VS_OUTPUT
{
float4 Pos : POSITION;
float2 TexCoord : TEXCOORD0;
float3 TexSpaceView: TEXCOORD1;
};
VS_OUTPUT GrassVS(VS_INPUT i)
{
VS_OUTPUT o;
float4 t_pos=mul(float4(i.Pos,1),WorldMatrix[i.TexCoord.z]);
//if (i.TexCoord.y<0.15)
//{
//t_pos.xyz+=winddir*cos(Times*Offset[i.TexCoord.z].x);
//}
o.Pos = mul(t_pos,ViewProj);
o.TexCoord=i.TexCoord.xy;
float3x3 TangentSpace=GetTangentSpaceBasis(i.Tangent.xyz, i.Normal.xyz);
o.TexSpaceView = mul(TangentSpace, t_pos.xyz-EyePos);
return o;
}
float4 GrassPS(VS_OUTPUT i) : COLOR
{
float4 color=float4(0,0,0,0);
float4 color1 = tex2D(diffuse1, i.TexCoord);
float4 color2 = tex2D(diffuse2, i.TexCoord+0.1f*i.TexSpaceView.xy);///i.TexSpaceView.z);
float4 color3 = tex2D(diffuse3, i.TexCoord+0.2f*i.TexSpaceView.xy);///i.TexSpaceView.z);
//float3 normals = normalize((tex2D(normal, i.TexCoord).xyz * 2.0f) - 1.0f);
color = lerp(color2,color3,1-color2.a);
color = lerp(color1,color,1-color1.a);
return color;
}
回复
引用
查看
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
另存
打印
所属分类的其他文章:
·
天空的颜色和大气散射
·
引擎渲染截图 -地形
·
引擎渲染截图
·
Trapezoidal Shadow Map(3)
·
Trapezoidal Shadow Map(2)
·
Trapezoidal Shadow Map(1)
·
parallax mapping
·
一张截图
·
有层次感的草的渲染方法
·
Texture Space Ligthing with Shadow
最新IT新闻:
·
雅虎首页大变脸 阿里风格上身
·
万名Linux使用者向暴雪请愿Linux版《Diablo III》
·
56.com我乐网将全面转行 退出视频行业
·
Joost借道TOM在线 将正式进军中国
·
微软副总裁公开承认Vista存在问题
博客园新闻频道
博客园首页
社区
<
2005年7月
>
日
一
二
三
四
五
六
26
27
28
29
30
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
29
30
31
1
2
3
4
5
6
与我联系
发短消息
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(12)
给我留言
查看留言
我参与的团队
计算机图形学(2/375)
随笔分类
杂项(76)
(rss)
自己的想法(31)
(rss)
自己的作品(23)
(rss)
随笔档案
2006年4月 (2)
2006年3月 (1)
2005年12月 (1)
2005年8月 (5)
2005年7月 (7)
2005年5月 (3)
2005年3月 (1)
2005年2月 (1)
2005年1月 (7)
2004年12月 (104)
链接
$!lences个人空间
antsam.blogone.net
FOX 3D GAME ENGINE专题报道
http://ndd.mysmth.net
http://www.beyond3d.com
http://www.t-pot.com/
博客园计算机图形学团队
冲浪之初
我们的Gzeasy讲场
中国游戏开发者
搜索
最新评论
1. re: 延时渲染(Deferred Shading)的应用场合的简单分析
晕,先进行深度测试,再ps的....
--月下
阅读排行榜
1. Volume Rendering(4150)
2. 3D Game Engine Architecture(3075)
3. [下载] DirectX 9.0 SDK Update - (Summer 2003)(2093)
4. Trapezoidal Shadow Map(3) (1409)
5. 禽兽!我等着你!(转)(1292)
评论排行榜
1. 3D Game Engine Architecture(8)
2. SH Lighting , PRT and 运动的物体(6)
3. Volume Rendering(5)
4. Texture Space Ligthing with Shadow(5)
5. Trapezoidal Shadow Map(3) (4)
Powered by:
博客园
Copyright © 胡说八道