[]地形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环境跑起来的示例代码呢?而需要如此麻烦的复制呢
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环境跑起来的示例代码呢?而需要如此麻烦的复制呢
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
brooshe
赞同来自:
'u_DirectionLight.Diffuse': [Laya.Scene.LIGHTDIRCOLOR, Laya.Shader3D.PERIOD_SCENE]