python - Kivy + 3D - 仅允许 65535 个索引。我能处理这个吗?
问题描述
根据文档,索引缓冲区中只能有 65535 个索引。对于今天的 3D 图形来说,这是一个非常明智和痛苦的限制。所以,我的问题是 - 是否有可能以某种方式处理这个问题?例如,更改源代码中的某些内容?这真的是OpenGL ES 2.0 的限制吗?
这个问题实际上有一个不好的解决方案 - 拆分绘图调用,并为 3d 模型中的每个 65535 个顶点分别设置顶点和索引缓冲区,但这确实是对性能的打击,因为需要在不同部分之间复制一些顶点分割的缓冲区。
我将非常感谢有人向我解释我在哪里可以找到这部分 kivy 代码并进行更改,或者解释为什么我不能更改它,如果我真的不能。
解决方案
根据
OpenGL ES Common Profile Specification Version 2.0.25(完整规范)(2010 年 11 月 2 日)
指数必须
是 UNSIGNED_BYTE 或 UNSIGNED_SHORT 之一,表示索引中的值分别是 GL 类型 ubyte 或 ushort 的索引。
所以,只要Kivy
是 using OpenGL 2
,我认为你就会被这个限制所困扰。
在 OpenGL 3.3 中,该限制是索引:
必须是 UNSIGNED_BYTE、UNSIGNED_SHORT 或 UNSIGNED_INT 之一,指示索引值分别为 GL 类型 ubyte、ushort 或 uint。
推荐阅读
- javascript - 如何将数组中某个键的值设置为另一个数组中的键?
- c++ - 无法打印完整的二叉搜索树,因为我从最低节点向后迭代的逻辑有缺陷
- r - Blogdown 没有以正确的顺序呈现数字列表
- rust - 统一 futures::future::map::Map 和 futures::future::result_::FutureResult
- java - 从 Spring Boot 执行 Neo4j 密码查询
- java - 使用 Selenium 单例驱动程序类是常见的做法吗?
- java - 每个 JVM 实例的 Java 最大速度是否达到 4Gbps 左右?
- mysql - 紧凑():未定义的变量:用户
- r - 使用 dplyr 将 hpfilter 应用于具有 NA 的分组变量
- c - C函数多重定义错误但声明一次?