Psychon Night
Psychon Night

Reputation: 53

(ursina) Prevent partially transparent model

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

Upvotes: 1

Views: 632

Answers (1)

pokepetter
pokepetter

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

Related Questions