В моей сцене у меня есть куб внутри сферы. Я хотел бы применить текстуру RGB к сфере и сделать ее полупрозрачной. Я могу импортировать текстуру, применить ее к сфере и сделать ее полупрозрачной, но я не получаю желаемого результата.
Моя функция смешивания glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)
Мой метод рисования следующий:
def DrawGLScene():
rotation1 = 60
rotation2 = 60
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glEnable(GL_BLEND)
glLoadIdentity()
glTranslatef(0.0, 0.0, -8.0)
glRotatef(rotation1, 1.0, 0.0, 0.0)
glRotatef(rotation2, 0.0, 1.0, 0.0)
glColor4f(1.0,1.0,1.0,1.0)
glutSolidCube(2);
glEnable(GL_COLOR_MATERIAL)
glEnable(GL_TEXTURE_2D)
glBindTexture(GL_TEXTURE_2D,1)
glColor4f(1.0,1.0,1.0,0.3)
Q=gluNewQuadric()
gluQuadricNormals(Q, GL_SMOOTH)
gluQuadricTexture(Q, GL_TRUE)
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP)
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP)
gluSphere(Q, 2.35, 32, 16)
glDisable(GL_TEXTURE_2D)
glutSwapBuffers()
Результат выглядит так:
Похоже, были проблемы с глубиной, так как я мог видеть только заднюю сторону сферы частично в правом нижнем углу. Затем я установил glDepthFunc (GL_LESS) для рисования куба и glDepthFunc (GL_ALWAYS) для рисования сферы, что привело к: