+ | alpha : number |
水波1和水波2的混合因子。默认值为0.5。
|
+ | color : uint |
水的颜色。
|
+ | depth : number |
水的深度。默认值为0。
|
+ | direction1 : _Vector2 |
水波1的流动方向。
|
+ | direction2 : _Vector2 |
水波2的流动方向。
|
+ | distort : number |
水波的扭曲程度。默认值为1。
|
+ | environmentMap : string |
水波的流光贴图资源名。
|
+ | height : number |
水平面的高度
|
+ | isWireframe : bool |
是否现况模式。
|
+ | lightColor : uint |
水波光照的颜色值。
|
+ | lightDir : _Vector3 |
水波光照的方向。
|
+ | lightShine : number |
水波光照的强度。
|
+ | mode : number |
水的模式,Lighting, Fresnel,Refract,Reflect四种 |
+ | name : string |
水的逻辑名
|
+ | normalMap : string |
水波的法线贴图资源名。
|
+ | reflectColor : uint |
水反射颜色值,仅在没有天空盒反射区域的反射颜色值。
|
+ | speed1 : number |
水波1流动的速度。默认值为1。
|
+ | speed2 : number |
水波2流动的速度。默认值为1。
|
+ | transparency : number |
透明度。
|
+ | waves : uint |
波纹数量。默认值为4。
|
+ | x1 : number |
水区域左上坐标的x值
|
+ | x2 : number |
水区域右下坐标的x值
|
+ | y1 : number |
水区域左上坐标的y值
|
+ | y2 : number |
水区域右下坐标的y值
|
+ | function draw() |
渲染水。
|
+ | function reflectionBegin() |
开始渲染反射的物体。与配对使用。在与之间渲染的物体会受到水的反射效果。
|
+ | function reflectionEnd() |
结束渲染反射的物体。与配对使用。在与之间渲染的物体会受到水的反射效果。
|
+ | function refractionBegin() |
开始渲染折射的物体。与配对使用。在与之间渲染的物体会受到水的折射效果。
|
+ | function refractionEnd() |
结束渲染折射的物体。与配对使用。在与之间渲染的物体会受到水的折射效果。
|
_sys:addPath('res')_dofile('cameracontrol.lua')amblight = _AmbientLight.new()skylight = _SkyLight.new()skylight.direction = _Vector3.new(-1, -1, -1)sky = _SkyDome.new()sky:setSkyMap('X+.bmp|X-.bmp|Y+.bmp|Y-.bmp|Z+.bmp|Z-.bmp')sen = _Scene.new('water-scene.sen')water = _Water.new()water.x1 = -1250water.x2 = 1250water.y1 = -1250water.y2 = 1250water.depth = 50.0water.height = 1.5water.normalMap = 'normal.jpg'water.color = 0x88002233water.lightColor = _Color.Greenwater.lightDir = _Vector3.new(-1, -1, -1)water.reflectColor = 0xFF00FF00water.lightShine = 200water.alpha = 0.7water.direction1 = _Vector2.new(1,-1)water.speed1 = 4.0water.direction2 = _Vector2.new(1,1)water.speed2 = 5.0water.waves = 0.50water.distort = 50water.mode = _Water.Lighting + _Water.Fresnelteapot = _mf:createTeapot()mat1 = _Matrix3D.new():setScaling(20, 20, 20):mulTranslationRight(0, 0, 20)mat2 = _Matrix3D.new():setTranslation(0, 0, -10)_rd.camera.eye = _Vector3.new(100, 100, 100)function render_obj() _rd:useLight(amblight) _rd:useLight(skylight) _rd:pushMatrix3D(mat1) teapot:drawMesh() _rd:popMatrix3D() _rd:popLight() _rd:popLight()endfunction render_scene() _rd:pushMatrix3D(mat2) sen.terrain:draw() _rd:popMatrix3D(mat2)end_app:onIdle(function(e) if water:refractionBegin() then render_scene() water:refractionEnd() end if water:reflectionBegin() then sky:draw() render_obj() render_scene() water:reflectionEnd() end render_obj() render_scene() sky:draw() water:draw()end)