arm: overlay

This commit is contained in:
Bixilon 2022-12-14 10:27:25 +01:00
parent 85d75fcfaa
commit 9d54e48b32
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 13 additions and 12 deletions

View File

@ -43,15 +43,17 @@ open class ArmMesh(renderWindow: RenderWindow, primitiveType: PrimitiveTypes = r
fun addArm(model: SkeletalModel, arm: Arms, skin: ShaderTexture) {
val element = model.elements.find {
it.name == when (arm) {
Arms.LEFT -> "LEFT_ARM"
Arms.RIGHT -> "RIGHT_ARM"
val elements = model.elements.filter {
when (arm) {
Arms.LEFT -> it.name == "LEFT_ARM" || it.name == "LEFT_SLEEVE"
Arms.RIGHT -> it.name == "RIGHT_ARM" || it.name == "RIGHT_SLEEVE"
}
} ?: return
}
val textures = Int2ObjectOpenHashMap<ShaderTexture>()
textures[0] = skin
element.bake(model, textures, emptyMap(), this)
for (element in elements) {
element.bake(model, textures, emptyMap(), this)
}
}

View File

@ -78,22 +78,20 @@ class ArmOverlay(private val renderWindow: RenderWindow) : Overlay {
}
private fun calculateTransform(): Mat4 {
val screen = renderWindow.window.sizef
val projection = renderWindow.camera.matrixHandler.projectionMatrix
val matrix = Mat4()
matrix.rotateAssign(45.0f.rad, Vec3(0, 0, 1))
matrix.rotateAssign(-5.0f.rad, Vec3(0, 1, 0))
matrix.rotateAssign(130.0f.rad, Vec3(1, 0, 0))
a += 1
matrix.translateAssign(Vec3(if (arm == Arms.LEFT) 0.2f else -0.2f, 0, 0)) // move inner side of arm to 0|0|0
matrix.translateAssign(Vec3(if (arm == Arms.LEFT) 0.25f else -0.25f, 0, 0)) // move inner side of arm to 0|0|0
// matrix.scaleAssign(BLOCK_RESOLUTION) // make a pixel one pixel
matrix.translateAssign(-0.5f)
matrix.translateAssign(Vec3(0, 0.3, 1.0))
val a = projection * matrix
@ -107,6 +105,7 @@ class ArmOverlay(private val renderWindow: RenderWindow) : Overlay {
renderWindow.renderSystem.clear(IntegratedBufferTypes.DEPTH_BUFFER)
renderWindow.renderSystem.disable(RenderingCapabilities.FACE_CULLING)
renderWindow.renderSystem.enable(RenderingCapabilities.DEPTH_TEST)
renderWindow.renderSystem.enable(RenderingCapabilities.BLENDING)
renderWindow.renderSystem.depthMask = true
mesh.unload()
updateMesh()

View File

@ -26,5 +26,5 @@ in vec3 finTextureCoordinates;
void main() {
vec4 texelColor = getTexture(finTextureIndex, finTextureCoordinates);
foutColor = texelColor;
foutColor.a = 1.0f;
// foutColor.a = 1.0f;
}