Reputation: 53
I'm using Ursina with Python3.8 to do some 3D world stuff.
I wanted to load in a 3D model of the portal gun, just to see if I could do it. I've done that sucessfully, but it looks weird. I've attached some screenshots so you can see what I mean.
As far as I can tell, it looks like the surface i'm looking at on the model is transparent... and i'm seeing the inside of the model.
I want the portal gun to look the way it does in the real Portal games
Does anyone know how I can prevent the weird transparency so it doesn't show the inside of the model?
The line of code I used to add the entity in-game:
Entity(model='portal_gun.fbx', position=(.5,3,.25), scale=.08, origin_z=-.5, rotation_z=0, color=pcolor, on_cooldown=False, name="gun", texture=("/models/tex/w_portalgun.png"), shader=unlit_shader)
For context, it does this with both 'unlit_shader' and 'lit_with_shadows_shader'
I'm using this 3D model: https://sketchfab.com/3d-models/portal-gun-from-portal-2-original-model-80fc291d695a4fe69e7941e96c0f53b3
better angle showing the inside of the top surface
Upvotes: 1
Views: 632
Reputation: 1489
Looks like the faces are flipped and the model assumes a clockwise winding order. (see: https://www.khronos.org/opengl/wiki/Face_Culling#:~:text=This%20is%20determined%20by%20the,clockwise%20around%20the%20triangle's%20center.)
You can change this by flipping the faces in you 3d modeling program or calling entity.flip_faces()
Upvotes: 1