以下教程介绍了如何使用高度贴图执行基本纹理喷涂。
http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_terrain
我能够按照本教程和练习获得优异的成绩。但是,我想知道如何添加三个以上的纹理。我在Terrain.j3md文件的材质参数中看到只有三个纹理图层:Tex1,Tex2,Tex3所以我不相信你可以使用Terrain.j3md来做到这一点。
我认为你必须使用TerrainLighting.j3md。但是,它的结构与NormalMap和DiffuseMap等参数的结构完全不同,我找不到任何文档/教程来解释它们到底是什么。
答案 0 :(得分:3)
最近,一种新的纹理喷溅材质定义已经发布,支持多达12种纹理,可选择额外的发光和镜面纹理。
材料的名称是TerrainLighting.j3md,而this是使用它的(非常好的)示例。
答案 1 :(得分:2)
JME3是一个基于OpenGL的库,使用GLSL shaders进行渲染。您必须编写自定义着色器或修改现有着色器以执行自定义渲染。
着色器是一个高级主题。您可以在SDK文档中找到shaders的简介。但是,您可能希望阅读有关"Materials, Light, Shadow"的完整文章。
JME3使用三个文件来管理它们:
.vert
文件.frag
文件
.j3md
文件顶点和片段着色器都只是使用GLSL语言的一段代码。顶点着色器对视图中的每个顶点执行一次以计算屏幕坐标。对屏幕上的每个像素执行一次片段着色器以计算颜色。 .j3md文件包含有关输入参数(材质),技术(着色器)等的定义。
参数的数量和类型是固定的。但您可以修改Terrain.j3m
以添加新的纹理参数:
Texture2D tex4
将新输入参数添加到Terrain.frag
:
uniform sampler2D m_Tex4;
并修改片段着色器代码以根据需要使用该新纹理参数。