Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以在 open gl es 1.x 中创建仅加载当前正在渲染的纹理分辨率的 MIP 贴图?
因此,与其一次加载从最大到最小的所有纹理分辨率,不如让 mipmap 只存储它当前正在渲染的那个。然后让 gl 在我放大和缩小时加载新的分辨率纹理。通过这种方式,我可以将许多大型纹理加载到表面上并缩小以一次查看它们,而不会出现任何 VM 预算问题。
如果 gl 没有办法做到这一点,是否可以覆盖 onDraw 函数以确定请求渲染的 mipmap 级别,以便我可以手动加载新纹理?
据我所知,没有任何功能。当您定义纹理对象具有 MipMap 时,您必须填充所有它们。如果您不这样做,那么这将被视为错误和未定义的行为 - 通常您在使用该纹理时会得到黑色渲染。
即使你能做到,你也不会真的想要;为纹理上传数据可能是一个缓慢的过程,尤其是在移动平台上,因此性能会受到很大影响。最后,MipMaps 通常使用线性插值,在上传的纹理数据的不同可用分辨率之间进行混合——至少需要两种尺寸。