1

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

angle 1 of portal gun

angle 2 of portal gun

better angle showing the inside of the top surface

Psychon Night
  • 53
  • 1
  • 8
  • Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. – Community May 29 '22 at 18:56

1 Answers1

1

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()

pokepetter
  • 1,383
  • 5
  • 8
  • Thanks so much for the suggestion! I tried this out, but unfortunately, it didn't seem to have any effect on the portal gun (I can still look through and see the underside of the outer face on the other side). – Psychon Night May 30 '22 at 14:22
  • Only thing I can think of then is to make sure the model is triangulated. – pokepetter May 31 '22 at 09:49
  • Through a combination of sheer luck and a different question unrelated, your suggestion to flip the faces actually ended up being the correct solution. Thanks :) – Psychon Night Jun 01 '22 at 23:48