Maison > développement back-end > Golang > le corps du texte

Pourquoi mon triangle OpenGL ne s'affiche-t-il pas dans Go ? Enquête sur un problème de tampon de sommet.

Patricia Arquette
Libérer: 2024-10-25 21:32:28
original
332 Les gens l'ont consulté

Why is My OpenGL Triangle Not Rendering in Go? Investigating a Vertex Buffer Issue.

Problème de tampon de sommet OpenGL dans Go

Lors d'une tentative d'affichage d'un triangle à l'aide d'OpenGL dans Go, un utilisateur a rencontré un problème où le sommet le tampon n'a pas réussi à restituer la forme. Le code Go est dérivé d'un tutoriel, mais contrairement à son homologue C, il n'a produit aucun résultat.

Cause du problème

La cause première du problème réside dans les arguments passés à vertexAttrib.AttribPointer(). Plus précisément, l'utilisateur avait incorrectement spécifié (void*)0 comme décalage du tampon du tableau. Cela a empêché l'application de trouver les données de sommet.

Solution

Pour résoudre le problème, l'utilisateur est passé à la branche de travail des liaisons banthar et a effectué le ajustements suivants :

  • Arguments AttribPointer : L'appel de vertexAttrib.AttribPointer() a été mis à jour pour utiliser nil pour le décalage du tampon du tableau et gl.FLOAT pour le type de données :
<code class="go">vertexAttrib.AttribPointer(
    3,     // size
    gl.FLOAT, //type
    false, // normalized?
    0,     // stride
    nil) // array buffer offset</code>
Copier après la connexion
  • BufferData Longueur : La longueur passée à gl.BufferData() a été modifiée pour spécifier la taille en octets, plutôt que le nombre d'éléments :
<code class="go">data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0}
[...]
gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)
[...]</code>
Copier après la connexion

Notes supplémentaires

  • Il existe peut-être un moyen plus efficace de transmettre la longueur correcte à BufferData.
  • L'appel glGetError a fait ne renvoie aucune erreur, indiquant que le problème provenait de valeurs d'argument incorrectes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal