以下是同一图片的两张图片:
这是在预览中查看时的样子......
这就是它在我的游戏中的样子...
显然,在我的游戏中缩小角色,但是,当我在预览或像素中缩小精灵时,它仍然是平滑的。即使图像的比例为1:1,它仍然具有锯齿状边缘。
这是我的渲染方法
public void render(Camera camera, List<Entity> entities) {
shader.loadViewMatrix(Main.createViewMatrix(camera));
//per textured model
GL30.glBindVertexArray(((RenderComponent) entities.get(0).getComponent(EntityComponentType.RENDER)).texturedModel.getRawModel().getVaoID());
GL20.glEnableVertexAttribArray(0);
GL20.glEnableVertexAttribArray(1);
for(Entity e : entities) {
RenderComponent render = (RenderComponent) e.getComponent(EntityComponentType.RENDER);
//load transformation matrix per entity
shader.loadTransformationMatrix(Main.createTransformationMatrix(render.position, render.rx, render.ry, render.getScaleX(), render.getScaleY()));
shader.loadSprite((AnimationComponentContainer) e.getComponent(EntityComponentType.ANIMATION));
//activate texture for each entity
GL13.glActiveTexture(GL13.GL_TEXTURE0);
GL11.glBindTexture(GL11.GL_TEXTURE_2D, render.getTexturedModel().getTexture().getTextureID());
//render entity
GL11.glDrawElements(GL11.GL_TRIANGLES, render.getTexturedModel().getRawModel().getVertexCount(), GL11.GL_UNSIGNED_INT, 0);
}
//per textured model
GL20.glDisableVertexAttribArray(0);
GL20.glDisableVertexAttribArray(1);
GL30.glBindVertexArray(0);
}
在我的片段着色器中,我对图像进行采样
vec4 color = texture(sampler, pass_TextureCoords);
并删除透明度
if(color.a < 0.5) discard;
out_Color = vec4(totalDiffuse, 1) * color;
我的问题是,如何防止出现锯齿状边缘(它们在裤子周围最突出)?或者我该如何平滑它们?图像本身,如果512x1024
答案 0 :(得分:0)
确保游戏的内部渲染分辨率对于完整图像足够大,并确保游戏不会将任何光投射到精灵本身,因为它看起来像角色正在与绿色交互在那边轻盈,它会在裤子上造成一些渐变问题。