Des maquettes en OpenGL
glPolygoneMode(GL_FRONT_AND_BACK, GL_FILL)
est SUR, et comment puis-je obtenir filaire à cette situation? Est-il possible de l'rendu fil de fer sans commutateur de Mode Polygone à GL_LINE
?
toutes les réponses avec la mystérieuse shaders (ou de la magie noire avec des alpha-profondeur de mélange) sont acceptés
glPolygoneMode(GL_FRONT_AND_BACK, GL_FILL) est SUR tous les temps de rendu de la scène, je ne peux pas l'éteindre
Pourriez-vous nous dire pourquoi vous ne pouvez pas l'éteindre?
glPolygoneMode(GL_FRONT_AND_BACK, GL_FILL) est SUR tous les temps de rendu de la scène, je ne peux pas l'éteindre
Pourriez-vous nous dire pourquoi vous ne pouvez pas l'éteindre?
OriginalL'auteur infra | 2011-02-17
Vous devez vous connecter pour publier un commentaire.
Remplir le remplit... vous voulez des lignes.
EDIT:
N'oubliez pas, vous pouvez toujours remettre à remplir lorsque vous avez terminé, comme ce
Soin d'expliquer pourquoi pas?
remplir le polygone. Sans poser de questions. Vous ne pouvez pas l'éviter. Si vous voulez faire du fil de fer, vous devez
GL_LINE
. C'est le mécanisme openGL fournit pour faire des maquettes!mise à jour de question: "Est-il possible de l'rendu fil de fer sans commutateur de Mode Polygone à GL_LINE?"
OriginalL'auteur corsiKa
De votre question, je suppose que vous avez un énorme middleware, et ont seulement accès à des shaders, ai-je le droit ?
Dans ce cas, créez dans votre vertex shader une variable appelée, par exemple, vertexID :
et de l'attribuer le haut-gl_VertexID :
De cette façon, vous aurez accès à des gl_VertexID à partir du fragment shader, mais interpolées ! C'est génial parce que ça va être, par exemple, 2 à un sommet, 3 au le prochain, et à 2,5 entre les deux.
De sorte que vous n'avez qu'à vérifier si vertexID est proche de 2 (resp. 3) : si oui, vous êtes près du bord. Qui devrait être assez bon pour la visualisation & debug.
Note que vous obtiendrez seulement 2 côtés de chaque triangle de cette façon. Et peut-être que certains seront ver mince ( si l'on vertexID est 2 et l'autre de 1000, le 0,1 zone est peu ).
mais il semble étrange - pour ajouter ce shader pour tous les objets à la scène 🙁
Je ne comprends pas votre dernier commentaire, vous pouvez le configurer pour une seule maille si vous le souhaitez. Je veux dire, si votre système le permet.
pouvez-vous suggérer à interpoler (plus ou moins) aléatoire intégrale des numéros sur votre fragment.
fract(vertexID) < 0.1
sera vrai pour les pixels près des sommets, mais généralement pas à proximité du bord et en fonction du nombre réel aussi dans le rendu de la primitive. Qui n'a pas à en faire trop avec le rendu d'un fil de fer, à droite?Généralement pas, en effet. Mais souvent, les Id sont contigus, de sorte qu'il fonctionne. Néanmoins, c'est un vilain hack, je n'ai jamais dit que ce serait parfait =)
OriginalL'auteur Calvin1602
Votre question n'est pas claire, mais je suppose que vous voulez le rendre à la fois le polygone remplis ET le fil de fer. S'avère que ce n'est pas si anodin. Un classique de la façon de résoudre le problème est:
mais ce n'est pas sans problèmes, tels que de déterminer les valeurs à transmettre à
glPolygonOffset
, etc.OriginalL'auteur UncleZeiv