是否有可能在opengl的显示列表中获取存储顶点数组? 从其他代码我得到一个显示列表,我应该画,但我需要知道该模型的边界框。是否有可能从显示列表中提取该信息?获取显示列表中存储的顶点数组
-1
A
回答
0
您是否考虑过使用feedback buffer,因为这已被弃用OpenGL?
在绘制显示列表之前,您可以将渲染模式设置为GL_FEEDBACK
,然后获取充满所有顶点的缓冲区。由于这是一个很少使用的特性,并且不赞成使用这种特性(变换反馈是现代等价物,尽管它在不同的流水线阶段起作用),但某些语言绑定可能没有。
不幸的是,反馈缓冲区不仅仅包含顶点。它包含所有发生的光栅操作的列表,您将不得不构建一些软件来理解这个列表。 OpenGL SuperBible具有an example如何在C中执行此操作。
另一件需要注意的事情是,顶点位置在屏幕空间中,您需要将它们反向投影到对象空间中,以便按照您希望的方式工作你的榜样。这也意味着任何必须被裁剪的顶点的原始位置都将丢失。这远非完美的解决方案,如果有的话更多的是黑客攻击,但它可能是有用的。
0
不。GL不支持检查显示列表。 DL仅用于GL,而不是用户。
话虽如此,理论上仍有可能获得DL的内容。您可以拦截生成DL的代码正在调用的所有GL调用,跟踪dlist状态并根据顶点数据计算边界框。旧的chromium open source project原则上允许你这样做。但是,这方面的努力会非常高,我怀疑这是解决您的问题的可行方案。
相关问题
- 1. 获取顶点序列中的顶点
- 2. 如何在数组列表中显示存储的值?
- 3. 从数据库读取数据并存储在数组列表中,但数组列表显示为空
- 4. 如何获取存储在STL数组中的STL列表?
- 5. 获取顶点列表的边界
- 6. 获取XML数据,并存储在数组列表的形式
- 7. 显示获取焦点时的组合框列表(vb.net)
- 8. 用顶点数组绘制一系列点:没有显示
- 9. 使用Lib3ds获取顶点数组
- 10. 存储在数组列表
- 11. 存储数组中的列表
- 12. 在android(java)数组中获取和存储sqlite的列值
- 13. 点击获取列表p的内容并显示在div中
- 14. 如何仅获取列表属性中显示的共享点列表列?
- 15. 如何在显示列表时从存储过程中获取外键值。
- 16. 只有最后图像存储在阵列中获取显示在表视图
- 17. 获取会话变量数组列表到显示标签
- 18. Web Firebase获取下载表中存储器的URL以显示在表中
- 19. 如何获取NDB数据存储区中的型号列表
- 20. 如何获取postgresql中存储过程的参数列表
- 21. SQLiteDatabase:获取列并将其存储到数组中
- 22. 将结构存储在列表中,然后显示列表?
- 23. 从本地存储显示数组值
- 24. 如何从列表中获取只有int部分并存储在数组中?
- 25. 如何获取json数组值并显示在angularjs中的dropdwon列表中?
- 26. 在Android中显示阵列列表中的数组列表
- 27. 动态加载存储数据并在列表中显示
- 28. 表存储获取实体列
- 29. 获取表单元素并使用javascript存储到数组中
- 30. 存储graphx顶点后