Tengo un número indefinido de contexto de visualización y cada uno mostrará una textura. Cuando llamo a glGenTextures obtengo el mismo nombre en todos los contextos de visualización. esto funcionara? Aunque tienen el mismo nombre, ¿aún almacenarán y mostrarán diferentes texturas? Si no, ¿qué debería hacer para evitar esto?texturas OpenGL con contextos de visualización múltiples
Respuesta
Obtener el mismo nombre de glGenTexture y mostrar la misma textura no es lo mismo.
Los nombres de texturas son solo enteros a discreción de un contexto, generalmente comenzando con 1, y aumentando con cada glGenTexture, pero no necesariamente. No es necesario que una implementación funcione así (aunque la mayoría lo hace). Sin embargo, en teoría también podría obtener un número más o menos "aleatorio", como por ejemplo un entero que se incrementa para cualquier tipo de objeto (es decir, no solo texturas, sino también búferes y sombreadores) o incluso una dirección de puntero de 32 bits en el espacio de direcciones del conductor, o alguna otra cosa esotérica. No hay ningún requisito de que un nombre debe ser algo específico.
En OpenGL heredado, incluso podría crear sus propios nombres en lugar de utilizar glGenTexture, pero eso ya no es legal ahora. No estoy seguro de lo que pensaban cuando eso estaba permitido, pero de todos modos ... :)
El mismo número (nombre) en un contexto diferente suele ser una textura diferente, o posiblemente ninguna textura en absoluto. Por lo tanto, si ve la misma textura en un contexto diferente con el mismo nombre de textura, entonces tiene contextos compartidos o el controlador tiene errores.
Tenga en cuenta que si utiliza wglCreateContextAttribsARB, el segundo parámetro es el manejador de un contexto ya existente (o nulo). Si proporciona un contexto aquí, tendrá contextos compartidos, incluso sin llamando explícitamente a glShareLists. Quizás eso es lo que sucedió por accidente.
Las texturas no se comparten (de manera predeterminada) en todos los contextos: tiene que habilitarlo explícitamente, pero la manera en que lo hace es específico de la plataforma.
En win32, es wglShareLists
, y en la mayoría de las demás plataformas se especifica al crear el contexto (por ejemplo, con el parámetro share
en aglCreateContext
en OS-X).
Que yo sepa, no he habilitado el intercambio de texturas. sin embargo, la misma textura se muestra en todos los contextos de visualización.
- 1. OpenGL - máscara con múltiples texturas
- 2. ¿OpenGL es seguro para múltiples hilos con contextos distintos?
- 3. Asignación de texturas OpenGL
- 4. Asignación de texturas C++ OpenGL
- 5. Cargando texturas PNG en OpenGL
- 6. Uso de texturas OpenGL mayores que el tamaño de ventana/visualización
- 7. mapeo perfecto de texturas de píxeles con OpenGL
- 8. Carga de texturas OpenGL: UNSIGNED_BYTE vs UNSIGNED_INT_8_8_8_8
- 9. CLOD texturas amplias del planeta en OpenGL
- 10. ¿Se deben voltear las texturas OpenGL?
- 11. ¿Puedo tener múltiples contextos de seguridad con seguridad de primavera?
- 12. Múltiples texturas en GLSL: solo funciona
- 13. ¿Cómo usar múltiples contextos de lienzo?
- 14. ¿Cómo puedo hacer que las texturas sean transparentes en OpenGL?
- 15. Texturas de punto flotante en OpenGL ES 2.0
- 16. Cómo cargar texturas en OpenGL ES de manera eficiente
- 17. ¿Cómo renderizar objetos Framebuffer en texturas de múltiples muestras?
- 18. cómo compartir la textura entre 2 contextos OpenGL?
- 19. Rendering a texturas múltiples con una pasada en directx 11
- 20. Necesito ayuda con la visualización de YUV en OpenGl
- 21. ¿Es posible compartir un objeto opengl framebuffer entre contextos/hilos?
- 22. ¿Puede OpenGL ES renderizar texturas de dimensiones no base 2?
- 23. Perder Texturas OpenGL en Android después de un currículum
- 24. Cómo obtener datos de texturas usando textureID en openGL
- 25. ¿Cómo usar múltiples texturas en WebGL?
- 26. Cargando texturas en una aplicación para Android OpenGL ES
- 27. Android opengl texturas blancas en la variante Samsung Galaxy
- 28. OpenGL ES renderizar para texturizar, luego dibujar texturas
- 29. OpenGL 2 texturas formatos internos GL_RGB8I, GL_RGB32UI, etc.
- 30. sugerencia de diseño: llvm contextos de tiempo de ejecución múltiples
¿Cómo está creando el contexto de gráficos? ¿Cuál es tu plataforma? – Menkboy
Tengo exactamente el mismo problema. Estoy usando PyQt5. Plataforma: linux (ubuntu16), gráficos intel. –