Renderowanie plików STL w OpenGL - jak naprawić dziury
: 06 cze 2018, 19:21
Temat trochę nietypowy ale może akurat ktoś będzie mi w stanie pomóc .
Siedzę nad programem pisanym w Pythonie z GUI w PyQT. Jednym z elementów jest widget który przedstawia ruch obiektu zgodnie z obrotem akcelerometru. No i obiekt ten jest plikiem STL, nawet udało mi się załadować go już i wyrenderować , ale jest tylko drobny problem: , jak widać sam kształt jest w pełni okej. Ogólnie to dla uproszczenia obsługuje sobie tylko plik tekstowe STL.
Niezbyt rozumiem czym są te wartości przy facet, wydaje mi się że sam problem jest w tym że biorę punkty trójkąta jak leci przez co niektóry ściany są odwrócone i wychodzi taka sieczka?
Dobrze myślę?
Jeśli tak to jak rozpoznać to jaka kolejność punktów należy brać.
Sam mój kod renderujący wygląda tak:
Gdzie facet jest tablicą zawierającą dane facet które jest tablicą zawierający te trzy punkty danego facet.
Z góry dzięki za pomoc .
Siedzę nad programem pisanym w Pythonie z GUI w PyQT. Jednym z elementów jest widget który przedstawia ruch obiektu zgodnie z obrotem akcelerometru. No i obiekt ten jest plikiem STL, nawet udało mi się załadować go już i wyrenderować , ale jest tylko drobny problem: , jak widać sam kształt jest w pełni okej. Ogólnie to dla uproszczenia obsługuje sobie tylko plik tekstowe STL.
Kod: Zaznacz cały
facet normal 0 0 -1
outer loop
vertex -4.96713 -4.49641 -2.1
vertex -5.12966 -4.31006 -2.1
vertex -5.08656 -4.25868 -2.1
endloop
Dobrze myślę?
Jeśli tak to jak rozpoznać to jaka kolejność punktów należy brać.
Sam mój kod renderujący wygląda tak:
Kod: Zaznacz cały
for facet in self.stl.facets:
for f in range(1, 3):
vertex=facet[f]
gl.glVertex3d(vertex['x']*0.5, vertex['y']*0.5, vertex['z']*0.5)
Z góry dzięki za pomoc .