mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 03:44:54 -04:00
arm: overlay
This commit is contained in:
parent
85d75fcfaa
commit
9d54e48b32
@ -43,15 +43,17 @@ open class ArmMesh(renderWindow: RenderWindow, primitiveType: PrimitiveTypes = r
|
|||||||
|
|
||||||
|
|
||||||
fun addArm(model: SkeletalModel, arm: Arms, skin: ShaderTexture) {
|
fun addArm(model: SkeletalModel, arm: Arms, skin: ShaderTexture) {
|
||||||
val element = model.elements.find {
|
val elements = model.elements.filter {
|
||||||
it.name == when (arm) {
|
when (arm) {
|
||||||
Arms.LEFT -> "LEFT_ARM"
|
Arms.LEFT -> it.name == "LEFT_ARM" || it.name == "LEFT_SLEEVE"
|
||||||
Arms.RIGHT -> "RIGHT_ARM"
|
Arms.RIGHT -> it.name == "RIGHT_ARM" || it.name == "RIGHT_SLEEVE"
|
||||||
}
|
}
|
||||||
} ?: return
|
}
|
||||||
val textures = Int2ObjectOpenHashMap<ShaderTexture>()
|
val textures = Int2ObjectOpenHashMap<ShaderTexture>()
|
||||||
textures[0] = skin
|
textures[0] = skin
|
||||||
element.bake(model, textures, emptyMap(), this)
|
for (element in elements) {
|
||||||
|
element.bake(model, textures, emptyMap(), this)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,22 +78,20 @@ class ArmOverlay(private val renderWindow: RenderWindow) : Overlay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun calculateTransform(): Mat4 {
|
private fun calculateTransform(): Mat4 {
|
||||||
val screen = renderWindow.window.sizef
|
|
||||||
|
|
||||||
|
|
||||||
val projection = renderWindow.camera.matrixHandler.projectionMatrix
|
val projection = renderWindow.camera.matrixHandler.projectionMatrix
|
||||||
|
|
||||||
val matrix = Mat4()
|
val matrix = Mat4()
|
||||||
|
matrix.rotateAssign(45.0f.rad, Vec3(0, 0, 1))
|
||||||
matrix.rotateAssign(-5.0f.rad, Vec3(0, 1, 0))
|
matrix.rotateAssign(-5.0f.rad, Vec3(0, 1, 0))
|
||||||
matrix.rotateAssign(130.0f.rad, Vec3(1, 0, 0))
|
matrix.rotateAssign(130.0f.rad, Vec3(1, 0, 0))
|
||||||
a += 1
|
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.scaleAssign(BLOCK_RESOLUTION) // make a pixel one pixel
|
||||||
matrix.translateAssign(-0.5f)
|
matrix.translateAssign(-0.5f)
|
||||||
|
matrix.translateAssign(Vec3(0, 0.3, 1.0))
|
||||||
|
|
||||||
val a = projection * matrix
|
val a = projection * matrix
|
||||||
|
|
||||||
@ -107,6 +105,7 @@ class ArmOverlay(private val renderWindow: RenderWindow) : Overlay {
|
|||||||
renderWindow.renderSystem.clear(IntegratedBufferTypes.DEPTH_BUFFER)
|
renderWindow.renderSystem.clear(IntegratedBufferTypes.DEPTH_BUFFER)
|
||||||
renderWindow.renderSystem.disable(RenderingCapabilities.FACE_CULLING)
|
renderWindow.renderSystem.disable(RenderingCapabilities.FACE_CULLING)
|
||||||
renderWindow.renderSystem.enable(RenderingCapabilities.DEPTH_TEST)
|
renderWindow.renderSystem.enable(RenderingCapabilities.DEPTH_TEST)
|
||||||
|
renderWindow.renderSystem.enable(RenderingCapabilities.BLENDING)
|
||||||
renderWindow.renderSystem.depthMask = true
|
renderWindow.renderSystem.depthMask = true
|
||||||
mesh.unload()
|
mesh.unload()
|
||||||
updateMesh()
|
updateMesh()
|
||||||
|
@ -26,5 +26,5 @@ in vec3 finTextureCoordinates;
|
|||||||
void main() {
|
void main() {
|
||||||
vec4 texelColor = getTexture(finTextureIndex, finTextureCoordinates);
|
vec4 texelColor = getTexture(finTextureIndex, finTextureCoordinates);
|
||||||
foutColor = texelColor;
|
foutColor = texelColor;
|
||||||
foutColor.a = 1.0f;
|
// foutColor.a = 1.0f;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user