游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4135|回复: 10

魔兽的水

[复制链接]

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2006-11-16 16:07:00 | 显示全部楼层 |阅读模式
魔兽的水,是我见过最好的,用最简单的技术实现最好效果的例子。
绘制此效果,需要使用两个PASS,
第一个PASS用一个高几何镶嵌的网格,进行高光光照,并使用add的方式进行混合
第二个PASS,使用一个QUAD,贴上交替变换的纹理,并使用alpha_blend方式进行混合

由于纹理拥有alpha通道,所以高光部分可以通过透明部分产生波光粼粼的效果。

我做的DEMO截图:

sf_2006111616647.png

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
 楼主| 发表于 2006-11-16 16:07:00 | 显示全部楼层

Re: 魔兽的水

pic2........
sf_2006111616713.png

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-16 16:50:00 | 显示全部楼层

Re:魔兽的水

有启发
不过顺序是不是反了
先add的话,就需要有水底,否则不就add到skybox或者是clear过的backbuffer上去了,所以导致看上去黑黑的吧

猜想:
第一个PASS,使用一个QUAD,贴上交替变换的纹理,使用普通方式进行混合
第二个PASS用一个高几何镶嵌的网格,进行高光光照,并使用add的方式进行混合
会不会好一些

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
 楼主| 发表于 2006-11-16 17:01:00 | 显示全部楼层

Re:魔兽的水

反过来不行,会看起来像塑料一样。

付上材质!

material base
{
        technique
        {
                        pass
                        {
                                lighting on
                                scene_blend add
                                depth_write off
                                cull_hardware none
                                cull_software none
                                fog_override true none
                               
                                ambient 0 0 0
                                diffuse 0 0 0 1
                                specular 1.0 1.0 1.0 6.5
                        }
                       
                  pass waterHighLight
                  {
                                lighting off
                                scene_blend alpha_blend  
                                depth_write off
                                cull_hardware none
                                cull_software none
                                fog_override true none

                                texture_unit
                                {
                                        texture_alias 0
                                        anim_texture lake_a1.tga lake_a2.tga lake_a3.tga lake_a4.tga lake_a5.tga lake_a6.tga lake_a7.tga lake_a8.tga lake_a9.tga lake_a10.tga lake_a11.tga lake_a12.tga lake_a13.tga lake_a14.tga lake_a15.tga lake_a16.tga lake_a17.tga lake_a18.tga lake_a19.tga lake_a20.tga lake_a21.tga lake_a22.tga lake_a23.tga lake_a24.tga lake_a25.tga lake_a26.tga lake_a27.tga lake_a28.tga lake_a29.tga lake_a30.tga 1
                                        tex_address_mode wrap
                                }
                        }
        }
}

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-11-16 17:17:00 | 显示全部楼层

Re: 魔兽的水

一个交替的纹理看上去很假。最好多个。
关键就是这个纹理。然后是用这个纹理去计算光照。现在都不愿意思考非shader的东西了。
GPU Gems 2里的那个太平洋英雄的水,效果也不错。如果不支持VTF。则可以把VTF拿掉。直接用法线图来计算“波光粼粼”。应该更加符合现在的显卡一些。


截图中的网格是一个quad。512x512的normal map是动态算的,所以很慢。GPU  gems 上是直接用预处理的小块normal map扰动的。
sf_20061116171634.jpg

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-11-16 17:32:00 | 显示全部楼层

Re:魔兽的水

.....
高几何镶嵌的网格
应该是什么样的?大概弄明白楼主的意思了..

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-11-16 17:38:00 | 显示全部楼层

Re:魔兽的水

很细蜜的意思吧

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2006-11-16 19:48:00 | 显示全部楼层

Re:魔兽的水

楼主的水的效果不是很好,像果冻一样,不好意思直说了.波纹的顶部应该感觉是尖一点的.

由于纹理拥有alpha通道,所以高光部分可以通过透明部分产生波光粼粼的效果。
这都能被你想出来,佩服佩服.

0

主题

42

帖子

42

积分

注册会员

Rank: 2

积分
42
发表于 2006-11-16 23:33:00 | 显示全部楼层

Re:魔兽的水

不知道说什么好呀

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-17 10:41:00 | 显示全部楼层

Re:魔兽的水

不记得魔兽里的水的specular效果是否能在不同角度时发生改变
如果不是,那么直接叫美术绘制或程序预处理生成带高光的序列帧不就好了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 22:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表