game-framework icon indicating copy to clipboard operation
game-framework copied to clipboard

`getMaterialTexture` in model.lua fails to to build filenames correctly

Open andrewmcwatters opened this issue 4 years ago • 5 comments

Describe the bug getMaterialTexture in model.lua:ln:105 fails to build correct filenames to material textures. This is caused by outdated assimp bindings causing the first 4 characters of filenames to be missing.

To Reproduce Steps to reproduce the behavior:

  1. Run ./lgf
  2. See error

Expected behavior Running ./lgf should not produce crashes. getMaterialTexture should provide correct filenames.

Additional context Stack traceback:

luajit: ...mcwatters/Planimeter/lgf/lua/framework/graphics/mesh.lua:27: not found
stack traceback:
	[C]: in function 'error'
	...cwatters/Planimeter/lgf/lua/framework/graphics/image.lua:29: in function 'constructor'
	/Users/andrewmcwatters/Planimeter/lgf/lib/class.lua:130: in function 'newImage'
	...mcwatters/Planimeter/lgf/lua/framework/graphics/mesh.lua:27: in function 'constructor'
	/Users/andrewmcwatters/Planimeter/lgf/lib/class.lua:130: in function 'processMesh'
	...cwatters/Planimeter/lgf/lua/framework/graphics/model.lua:193: in function 'processNode'
	...cwatters/Planimeter/lgf/lua/framework/graphics/model.lua:219: in function 'constructor'
	/Users/andrewmcwatters/Planimeter/lgf/lib/class.lua:130: in function 'newModel'
	/Users/andrewmcwatters/Planimeter/lgf/main.lua:55: in function 'load'
	...rs/andrewmcwatters/Planimeter/lgf/lua/framework/init.lua:89: in function 'main'
	...rs/andrewmcwatters/Planimeter/lgf/lua/framework/init.lua:272: in main chunk
	[C]: at 0x0100c371d0

Filenames created:

models/DamagedHelmet/gltf/ult_AO.jpg
models/DamagedHelmet/gltf/ult_emissive.jpg
models/DamagedHelmet/gltf/ult_albedo.jpg
models/DamagedHelmet/gltf/ult_normal.jpg

Filenames expected:

models/DamagedHelmet/gltf/Default_AO.jpg
models/DamagedHelmet/gltf/Default_emissive.jpg
models/DamagedHelmet/gltf/Default_albedo.jpg
models/DamagedHelmet/gltf/Default_normal.jpg

See also https://github.com/LWJGL/lwjgl3/issues/516

andrewmcwatters avatar Oct 24 '21 20:10 andrewmcwatters

Hey, you ever managed to resolve this?

PetriKiviniemi avatar Apr 30 '24 20:04 PetriKiviniemi

@PetriKiviniemi I think I just need to update the bindings, actually. I can try to schedule this for this evening. This just requires an update to https://github.com/Planimeter/lassimp.

andrewmcwatters avatar Apr 30 '24 21:04 andrewmcwatters

Hmm sorry I got the threads confused. I am struggling with original assimp on my own custom game-engine. I have the same issue, of where 4 chars are being cut out, even with latest assimp. Was thinking of doing some patching to the assimp library itself, but is there some better way?

PetriKiviniemi avatar Apr 30 '24 21:04 PetriKiviniemi

Ah I see, you're using lwjgl and it is suffering from the same issue. You may be better off not patching assimp, and writing your own utility function to expand the filenames expected instead.

I'm surprised that this would still be occurring with the latest version of assimp.

andrewmcwatters avatar Apr 30 '24 23:04 andrewmcwatters

@PetriKiviniemi It looks like it should have been fixed. See https://github.com/assimp/assimp/issues/3264. The latest version is now 5.4.0. I assume this was addressed quite some time ago, but I haven't checked in the latest version since about 6 years ago, back when 4.1.0 had this issue.

Time flies! Let me know if I can help you, even though this isn't related to Planimeter Game Framework!

andrewmcwatters avatar Apr 30 '24 23:04 andrewmcwatters