小编Jah*_*udZ的帖子

LibGDX:如何使用OpenGL 2.0实现平面阴影外观?

所以我试图用LibGDX实现"Polygon Art/Low Poly"风格.我首先构建一个由三角形组成的模型.

1

然后使用顶点着色器,我根据高度计算每个顶点的颜色.

2

问题是,当我希望它是平面阴影时,地形是Gouraud阴影:

3

我知道,对于更高版本的OpenGL,glsl中有一个"平面"关键字,它将禁用顶点之间的颜色插值.从我在网上和这篇文章中读到的内容:http://i.stack.imgur.com/DrNx9.jpg,我认为我需要让地形中的每个三角形彼此分开?我还需要计算每个三角形的法线?我无法理解其他StackOverflow中的代码,但这是我试图做的:

原版的

public Model getWorld(){
    returnWorld = new Model();
    modelBuilder = new ModelBuilder();
    modelBuilder.begin();
    worldMeshBuilder = modelBuilder.part("worldPart", GL20.GL_TRIANGLES, Usage.Position | Usage.Normal, new Material());
    pieceMeshBuilder = new MeshBuilder();
    meshPiece = new Mesh(false, 3, 3, 
            new VertexAttribute(Usage.Position, 3, "a_position"), 
            new VertexAttribute(Usage.Normal, 3, "a_normal"), 
            new VertexAttribute(Usage.ColorPacked, 4, "a_color"));
    Vector3 vectorCopy = new Vector3();
    for(int i = 0; i < world.length - 1; i++){
        for(int j = 0; j < world[0].length - 1; j++){
            if((i …
Run Code Online (Sandbox Code Playgroud)

java opengl glsl libgdx opengl-2.0

3
推荐指数
1
解决办法
1675
查看次数

标签 统计

glsl ×1

java ×1

libgdx ×1

opengl ×1

opengl-2.0 ×1