trying to optimise the rendering, this is BEFORE job

This commit is contained in:
minjaesong
2018-06-26 09:10:05 +09:00
parent a6ea2b4e18
commit 11aa7f5cb1
6 changed files with 60 additions and 3 deletions

17
assets/aaaxmul.frag Normal file
View File

@@ -0,0 +1,17 @@
#version 120
#ifdef GL_ES
precision mediump float;
#endif
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture; // world texture, has alpha value that is meaningful
uniform sampler2D tex1; // lightmap texture
void main() {
vec4 colorTex0 = texture2D(u_texture, v_texCoords); // world texture
vec4 colorTex1 = texture2D(tex1, v_texCoords); // lightmap (RGBA)
gl_FragColor = colorTex0 * vec4(colorTex1.aaa, 1.0);
}

17
assets/rgbxmul.frag Normal file
View File

@@ -0,0 +1,17 @@
#version 120
#ifdef GL_ES
precision mediump float;
#endif
varying vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture; // world texture, has alpha value that is meaningful
uniform sampler2D tex1; // lightmap texture
void main() {
vec4 colorTex0 = texture2D(u_texture, v_texCoords); // world texture
vec4 colorTex1 = texture2D(tex1, v_texCoords); // lightmap (RGBA)
gl_FragColor = colorTex0 * vec4(colorTex1.rgb, 1.0);
}

View File

@@ -192,11 +192,16 @@ object Terrarum : Screen {
lateinit var shaderRGBOnly: ShaderProgram lateinit var shaderRGBOnly: ShaderProgram
lateinit var shaderAtoGrey: ShaderProgram lateinit var shaderAtoGrey: ShaderProgram
lateinit var shader18Bit: ShaderProgram lateinit var shader18Bit: ShaderProgram
lateinit var shaderMulRGBX: ShaderProgram
lateinit var shaderMulAAAX: ShaderProgram
lateinit var textureWhiteSquare: Texture lateinit var textureWhiteSquare: Texture
lateinit var testTexture: Texture
/** Actually just a mesh of four vertices, two triangles -- not a literal glQuad */ /** Actually just a mesh of four vertices, two triangles -- not a literal glQuad */
lateinit var fullscreenQuad: Mesh; private set lateinit var fullscreenQuad: Mesh; private set
private var fullscreenQuadInit = false private var fullscreenQuadInit = false
@@ -308,6 +313,9 @@ object Terrarum : Screen {
assetManager = AssetManager() assetManager = AssetManager()
testTexture = Texture(Gdx.files.internal("./assets/test_texture.tga"))
println("[Terrarum] GL_VERSION = $GL_VERSION") println("[Terrarum] GL_VERSION = $GL_VERSION")
println("[Terrarum] GL_MAX_TEXTURE_SIZE = $GL_MAX_TEXTURE_SIZE") println("[Terrarum] GL_MAX_TEXTURE_SIZE = $GL_MAX_TEXTURE_SIZE")
println("[Terrarum] GL info:\n${Gdx.graphics.glVersion.debugVersionString}") // debug info println("[Terrarum] GL info:\n${Gdx.graphics.glVersion.debugVersionString}") // debug info
@@ -368,6 +376,10 @@ object Terrarum : Screen {
shaderRGBOnly = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/rgbonly.frag")) shaderRGBOnly = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/rgbonly.frag"))
shaderAtoGrey = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/aonly.frag")) shaderAtoGrey = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/aonly.frag"))
shaderMulRGBX = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/rgbxmul.frag"))
shaderMulAAAX = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/aaaxmul.frag"))
shader18Bit = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/18BitColour.frag")) shader18Bit = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/18BitColour.frag"))

View File

@@ -26,7 +26,7 @@ class EntryPoint : ModuleEntryPoint() {
// load customised item loader // // load customised item loader //
///////////////////////////////// /////////////////////////////////
println("[ItemCodex] recording item ID ") println("[ModuleBaseGame.EntryPoint] recording item ID ")
// blocks.csvs are loaded by ModMgr beforehand // blocks.csvs are loaded by ModMgr beforehand
// block items (blocks and walls are the same thing basically) // block items (blocks and walls are the same thing basically)

View File

@@ -527,7 +527,10 @@ class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
else { else {
var updateTries = 0 var updateTries = 0
while (updateDeltaCounter >= updateRate) { while (updateDeltaCounter >= updateRate) {
updateGame(delta)
//updateGame(delta)
measureRuntime({ updateGame(delta) }, prependMsg = "Update Game: ")
updateDeltaCounter -= updateRate updateDeltaCounter -= updateRate
updateTries++ updateTries++
@@ -540,7 +543,15 @@ class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
/** RENDER CODE GOES HERE */ /** RENDER CODE GOES HERE */
renderGame(batch) //renderGame(batch)
measureRuntime({ renderGame(batch) }, prependMsg = "Render Game: ")
}
private fun measureRuntime(function: (() -> Unit), out: PrintStream = System.err, prependMsg: String = "", appendMsg: String = "") {
val startTime = System.nanoTime()
function.invoke()
val endTime = System.nanoTime()
println("$prependMsg${endTime - startTime} ns$appendMsg")
} }
protected fun updateGame(delta: Float) { protected fun updateGame(delta: Float) {