小编Les*_*tat的帖子

libgdx着色器 - 基本着色器,但屏幕为空白

我正在尝试使用libgdx来理解着色器,来自XNA/HLSL背景.我试图获得一个vert/frag着色器对来重现我没有着色器得到的输出,但它没有显示任何东西.

着色器创建:

void SetupShader()
{
    ShaderProgram.pedantic = false;
    shader = new ShaderProgram(
            Gdx.files.internal("assets/default.vert").readString(),
            Gdx.files.internal("assets/default.frag").readString());
    if(!shader.isCompiled()) {
        Gdx.app.log("Problem loading shader:", shader.getLog());
    }
    batch.setShader(shader);
}
Run Code Online (Sandbox Code Playgroud)

default.vert:

attribute vec4 a_Position;
attribute vec4 a_Normal;
attribute vec2 a_TexCoord;
attribute vec4 a_Color;

uniform mat4 u_projTrans;

varying vec2 v_texCoords;
varying vec4 v_color;

void main() {
    v_color = a_Color;
    v_texCoords = a_TexCoord;
    gl_Position = u_projTrans * a_Position;
}
Run Code Online (Sandbox Code Playgroud)

default.frag:

#ifdef GL_ES
precision mediump float;
#endif

varying vec2 v_texCoords;
varying vec4 v_color;

void main() {
    gl_FragColor = v_color;
} …
Run Code Online (Sandbox Code Playgroud)

java shader opengl-es libgdx

9
推荐指数
1
解决办法
7286
查看次数

桌面游戏上的Google Play游戏服务

我使用Libgdx框架在Java中创建了一个游戏.现在我想知道是否可以在桌面(java/.jar)游戏中使用Google Play游戏服务,还是仅仅适用于移动设备?

android libgdx google-play-services

9
推荐指数
1
解决办法
1923
查看次数

Unity项目是否有标准/推荐的目录结构?

我的下一个项目将使用Unity 5.6.这将是一款游戏,它将利用AssetBundle进行远程场景加载.之后将逐步添加新场景.因此,我希望我不会使用太糟糕的结构,需要在项目的后期阶段进行大量更改.Unity项目是否有标准/推荐的目录结构?

unity-game-engine

9
推荐指数
2
解决办法
4087
查看次数

为什么Libgdx的表不接受规模行动?

我在libgdx库中使用scene2d在我的游戏中创建一些UI.

我使用了一个表格,当用户触摸按钮触摸感觉时,我想采取一些缩放操作.

当我使用像Group这样的任何其他"Actor"类型并给它一个缩放动作时,它可以工作但不是Table.

这是我的表定义:

Table table = new Table();
table.setSize(width, height);
table.setPosition(x, y);
table.setOrigin(width/2, height/2);
table.add(new Label(...));
table.row();
...
Run Code Online (Sandbox Code Playgroud)

在我的touchDown事件中,我给它一个缩放动作:

table.addAction(Actions.scaleTo(0.8f, 0.8f, 0.1f));
Run Code Online (Sandbox Code Playgroud)

在touchUp中,我给它另一个动作来获得原始比例:

table.addAction(Actions.scaleTo(1f, 1f, 0.1f));
Run Code Online (Sandbox Code Playgroud)

正如我所说,这段代码适用于其他类型的Actors,如Image和Group.任何想法,为什么不适用于表?

java tablelayout libgdx scene2d

8
推荐指数
1
解决办法
4894
查看次数

libgdx纹理过滤器和mipmap

当我尝试在LibGDX中使用mipmap过滤时,不会出现任何图像.

我是LibGDX的新手,我有一个简单的2D场景,有三个旋转的缩放圆圈.为了对它们进行反混淆,我想使用线性过滤.对于建议,我查看了这篇文章,该文章说,对于大规模缩放的图像,可以使用mipmap来提高速度或质量.

第一个意想不到的表现是,尽管我的所有图像都按比例缩小,但我只会看到一个线性过滤器,如果magFilter是线性的.换一种说法:

此代码将显示缩小图像的线性过滤器:

parentTexture.setFilter(TextureFilter.Nearest, TextureFilter.Linear);
Run Code Online (Sandbox Code Playgroud)

这个代码不会:

parentTexture.setFilter(TextureFilter.Linear, TextureFilter.Nearest);
Run Code Online (Sandbox Code Playgroud)

这似乎与libGDX函数相反:

void com.badlogic.gdx.graphics.Texture.setFilter(TextureFilter minFilter, TextureFilter magFilter)
Run Code Online (Sandbox Code Playgroud)

这不会打扰我,除了它表明libgdx是错误的(不太可能),文章是错误的(不太可能),或者我不理解纹理过滤器.当我尝试使用mipmap过滤器时,后者似乎特别有可能.

此代码不会显示任何内容

parentTexture.setFilter(TextureFilter.MipMapLinearLinear, TextureFilter.Linear);
Run Code Online (Sandbox Code Playgroud)

此代码显示,但具有最近的过滤

parentTexture.setFilter(TextureFilter.Linear, TextureFilter.MipMapLinearLinear);
Run Code Online (Sandbox Code Playgroud)

任何解释我错的地方都将不胜感激.我在其他地方搜索过,但是libGDX中的纹理过滤器非常具体,所以除了文章之外,我还没有找到太多帮助.

java textures mipmaps libgdx

8
推荐指数
2
解决办法
1万
查看次数

视频驱动程序不支持OpenGL

当我使用这段代码时:

import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;

public class Main {
   public static void main(String[] args) {
      LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
      cfg.title = "MtxJungleGameMenu";
      cfg.useGL20 = false;
      cfg.width = 800;
      cfg.height = 480;
      new LwjglApplication(new MainStarter(), cfg);
   }
}
Run Code Online (Sandbox Code Playgroud)

我得到这样的例外:

线程"LWJGL Application"中的异常com.badlogic.gdx.utils.GdxRuntimeException:com.badlogic.gdx.utils.GdxRuntimeException:视频驱动程序不支持OpenGL.

任何帮助?

java libgdx

8
推荐指数
2
解决办法
9790
查看次数

LibGDX初始化Drawable

对于那些熟悉新LibGDX 0.98的人来说,这是一个问题.我不太确定,如何在Scene2d包中使用Drawable.我目前使用".png"作为各种类的背景的代码如下所示:

new TextureRegionDrawable(new TextureRegion(new Texture("data/splitpane.png")));
Run Code Online (Sandbox Code Playgroud)

有没有比这3个类更容易使用".png"作为Drawable的方法?

java libgdx scene2d

8
推荐指数
2
解决办法
6796
查看次数

在具有巨大世界的游戏中正确使用scene2d的舞台

如果整个"游戏世界"比视口宽几千倍,并且如果我想使用scene2d来管理游戏对象作为Actors,我应该创建与全世界一样宽的Stage对象,还是应该Stage是当前的某个区域视口而不是整个世界?
换句话说,Stage宽度和高度越大,自身消耗的内存越多,即使我只在一个小视口大小的部分渲染对象?

libgdx scene2d

8
推荐指数
1
解决办法
3839
查看次数

LibGDX网格高度图法线和灯光

我试图让网格法线和灯在LibGDX项目中工作.

我已经有从高度贴图纹理像素生成的纹理网格.

问题是我无法正常点亮法线.此外,我不是100%确定我在TerrainChunk类中正确设置了正常顶点.

继承主类代码:

package com.me.terrain;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Mesh;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.VertexAttribute;
import com.badlogic.gdx.graphics.VertexAttributes.Usage;
import com.badlogic.gdx.graphics.g3d.utils.CameraInputController;
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
import com.badlogic.gdx.math.Matrix3;
import com.badlogic.gdx.math.Matrix4;
import com.badlogic.gdx.math.Vector3;

public class Terra extends Game {

private PerspectiveCamera camera;
private CameraInputController camController;

private TerrainChunk chunk;
private Mesh mesh;

private ShaderProgram shader;
private Texture terrainTexture;

private final Matrix3 normalMatrix = new Matrix3();

private static final float[] lightPosition = { 5, 35, 5 …
Run Code Online (Sandbox Code Playgroud)

java shader mesh normals libgdx

8
推荐指数
1
解决办法
4437
查看次数

绘制一个在libgdx中旋转的BitmapFont

我似乎无法弄清楚如何正确旋转位图字体.我想你修改了SpriteBatch的转换矩阵.但是,尝试旋转可以围绕某个点旋转文本,我不知道如何相对于文本本身旋转文本.

java rotation matrix bitmap-fonts libgdx

7
推荐指数
2
解决办法
7552
查看次数