是否有可能在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. 获取XML数据,并存储在数组列表的形式
- 3. 显示获取焦点时的组合框列表(vb.net)
- 4. 用顶点数组绘制一系列点:没有显示
- 5. 使用Lib3ds获取顶点数组
- 6. 存储在数组列表
- 7. 存储数组中的列表
- 8. 在android(java)数组中获取和存储sqlite的列值
- 9. 点击获取列表p的内容并显示在div中
- 10. 如何仅获取列表属性中显示的共享点列表列?
- 11. 如何在显示列表时从存储过程中获取外键值。
- 12. 只有最后图像存储在阵列中获取显示在表视图
- 13. 获取会话变量数组列表到显示标签
- 14. 如何获取NDB数据存储区中的型号列表
- 15. 如何获取postgresql中存储过程的参数列表
- 16. SQLiteDatabase:获取列并将其存储到数组中
- 17. 将结构存储在列表中,然后显示列表?
- 18. 如何从列表中获取只有int部分并存储在数组中?
- 19. 在Android中显示阵列列表中的数组列表
- 20. 动态加载存储数据并在列表中显示
- 21. 表存储获取实体列
- 22. 存储graphx顶点后
- 23. 从数组列表中获取点击的对象
- 24. 数组列表存储到在c#另一个数组列表
- 25. 在几何圆顶上存储顶点
- 26. 在列表中显示JSON数组
- 27. 从列表中获取顶点和索引<Vector3>
- 28. 在jsp中显示下拉列表中的数组列表
- 29. 从数据表中获取行数据 - 顶点类
- 30. 排序并显示存储数组中的具体数值