在Android应用中存储着色器代码的位置

前端之家收集整理的这篇文章主要介绍了在Android应用中存储着色器代码的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从 Android(5.0.1),API级别19开始使用OpenGL ES2.0.我应该在哪里存储着色器代码?第一个示例将着色器直接编码为字符串.

我想将着色器代码放在一个单独的文件中以获得更好的可用性.存储和加载顶点和片段着色器的最佳实践是什么?

解决方法

有两个主要选择:

>将它们作为文本文件存储在项目的assets文件夹中.要加载着色器:

>使用上下文的getAssets()方法获取AssetManager.
>在AssetManager上调用open(),传入着色器的文件名.这为您提供了一个InputStream.
>从InputStream中读取着色器代码,并将其存储在String中.
>在InputStream上调用close().

>将它们存储在项目的res / raw文件夹中.要加载着色器:

>使用上下文的getResources()方法获取资源.
>在资源上调用openRawResource(),传入资源ID(R.raw.< name>).这为您提供了一个InputStream.
>(与上述相同)
>(与上述相同)

我不相信有一个很大的理由偏爱一个而不是另一个.主要区别在于您使用文件名访问资产,而使用自动分配的资源ID作为资源.这是一个偏好的问题,你更喜欢哪一个.

猜你在找的Android相关文章