[]地形shader示例渲染失败【在线等】

我想在本地把这个示例跑起来, 但遇到问题:
https://layaair.ldc.layabox.com/demo/?category=3d&group=shader&name=Shader_Terrain
 
我的步骤如下:
1)新建一个项目
2)从github上下载layaair的源代码, 然后将源代码中的samples/res资源复制到本地项目的bin目录下。
3)将samples中的CameraMoveScript.ts和CustomTerrainMaterial.ts复制到本地项目的src目录下。
4)  将示例中的ts代码复制到LayaAir3D.ts中
最终代码结构见附件。
 
然后有处报错:
LayaAir3D.ts中地83行,报错是:在Laya.Scene中不存在LIGHTDIRDIFFUSE
'u_DirectionLight.Diffuse': [Laya.Scene.LIGHTDIRDIFFUSE, Laya.Shader3D.PERIOD_SCENE]
我把这行注释了。
-------请问,我用的是layaair 1.7.16版本。示例中的代码为什么报这个错误呢? 不注释的话,我应该怎么修改这行呢?
 
示例中的ts代码,访问资源路径是:
Laya.Scene.load("../../res/threeDimen/scene/terrain/terrain.ls")
我把所有的 ../../res 改成了 res
 
然后启动项目,报错如下:
Error: BaseMaterial: unknown shader name.
    at CustomTerrainMaterial.__proto.setShaderName (file:///Users/xutao/Documents/laya/test/bin/libs/laya.d3.js:23016:10)
    at new CustomTerrainMaterial (file:///Users/xutao/Documents/laya/test/bin/js/CustomTerrainMaterial.js:15:15)
    at Shader_Terrain.setCustomMaterial (file:///Users/xutao/Documents/laya/test/bin/js/LayaAir3D.js:24:34)
    at Shader_Terrain.<anonymous> (file:///Users/xutao/Documents/laya/test/bin/js/LayaAir3D.js:18:18)
    at EventHandler.__proto.runWith (file:///Users/xutao/Documents/laya/test/bin/libs/laya.core.js:713:27)
    at Scene.__proto.event (file:///Users/xutao/Documents/laya/test/bin/libs/laya.core.js:483:28)
    at Scene.__proto.onAsynLoaded (file:///Users/xutao/Documents/laya/test/bin/libs/laya.d3.js:29242:8)
    at ResInfo.onLoaded (file:///Users/xutao/Documents/laya/test/bin/libs/laya.core.js:12995:61)
    at EventHandler.__proto.runWith (file:///Users/xutao/Documents/laya/test/bin/libs/laya.core.js:713:27)
    at ResInfo.__proto.event (file:///Users/xutao/Documents/laya/test/bin/libs/laya.core.js:483:28)
 
渲染效果见附件。
--------请问这个是什么问题呢,我应该如何修改呢?
 
另外为什么官网不直接提供,可以在IDE环境跑起来的示例代码呢?而需要如此麻烦的复制呢
 
 
 
 
9E9F0719-2AC5-4C73-94C3-E69799DFC691.png 73B5D574-8B67-499F-BA34-7F35C6A75D0D.png
已邀请:

brooshe

赞同来自:

改成这样
'u_DirectionLight.Diffuse': [Laya.Scene.LIGHTDIRCOLOR, Laya.Shader3D.PERIOD_SCENE]
 

要回复问题请先

商务合作
商务合作