ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java-部分纹理在屏幕外-性能差异

2019-10-13 09:00:15  阅读:237  来源: 互联网

标签:android java textures performance-testing opengl-es-2-0


图片上是两种情况的示例,其中正在渲染带纹理的多边形.全部由Opengl ES2完成.

A)多边形部分不在视口中
B)多边形完全在里面

我的问题:

情况’A)’是否会消耗更少的系统/ GPU资源*,因为纹理部分不在屏幕上,还是会执行与我在视口内部渲染的效果相同的效果,为什么?

*“资源”-表示速度,而不是内存.

我知道opengl会先计算顶点,然后再渲染纹理,并且如果顶点不在屏幕/视口之外,它会跳过任何进一步的计算,但是对于纹理对象部分处于屏幕外的情况是否相同?它会忽略不可见的纹理部分吗?

解决方法:

情况A应该更快.顶点处理将是相同的.之后,将应用裁剪到视图体积.在情况A中,部分多边形将被裁剪,而整个多边形在情况B中通过.之后,对多边形进行栅格化,然后将所得片段进行片段处理.由于情况A中的碎片较少,因此在此阶段要做的工作较少.片段着色器进行纹理采样,因此在这种情况下,将仅对纹理的可见部分进行采样.

生成片段后也可能发生裁剪,但是我总是希望它在片段着色器之前完成.

尽管在情况A下工作总是很少,但这并不一定意味着您会在渲染中看到速度差异.您可能在管道的其他部分或应用程序代码中遇到瓶颈.

标签:android,java,textures,performance-testing,opengl-es-2-0
来源: https://codeday.me/bug/20191013/1906988.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有