【问题标题】:Where is the appropriate location for shader files in android: Assets, Raw, or somewhere else?android 中着色器文件的合适位置在哪里:Assets、Raw 或其他地方?
【发布时间】:2012-12-08 04:26:40
【问题描述】:

我进行了一些搜索,但没有找到合适的位置来存储我的着色器文件?资产、资源的原始文件夹,还是其他地方?

谢谢

【问题讨论】:

    标签: android shader


    【解决方案1】:

    我过去使用过这两种方法,并且都可以正常工作。

    要考虑的一件事是,您是否要随时在库项目中使用此代码。如果是,我建议使用 res/raw 目录,因为资源库项目有限制。

    来自文档:

    图书馆项目不能包含原始资产

    工具不支持 在 a 中使用原始资产文件(保存在 assets/ 目录中) 图书馆项目。应用程序使用的任何资产资源必须是 存储在应用程序项目本身的 assets/ 目录中。 但支持保存在 res/ 目录下的资源文件。

    【讨论】:

      【解决方案2】:

      老实说,我两者都不会。将它们存储在您的代码本身中可能是最安全和最安全的方法。 (也就是说,在某个类中将它们设为public static final String 变量。)我可能会在应用程序启动或初始化类时使用StringBuilder 构建它们。

      如果您更愿意自己存储文件,请使用assets。使用res/raw对文件名有限制,不能使用raw中的子目录。

      【讨论】:

      • 我知道这取决于个人喜好和一些懒惰,但我只是不喜欢将着色器插入 Java 字符串时的样子。我也觉得这样我的代码变得更加纠结,但我知道这只是个人喜好。
      • @xtraorange 是的,我有时也有这种感觉。将您“包含”的内容放入代码本身会感觉很奇怪,所以我得到了您所追求的。在这种情况下,请记住第二段。
      • 那么值得注意的是,我在某处读到资产速度较慢且资源密集,因此我不确定是否值得交换子目录。很高兴知道。我知道有几种方法可以利用资产,对于着色器来说,读取它们的最佳方法是什么?
      • 如果您使用的是 NDK,请查看this thread。否则,this blog post 应该可以解决问题。无论哪种情况,您最终都会得到一个可用的类似字符串的对象,您可以将其用作着色器。
      【解决方案3】:

      将着色器文件存储在 assets 文件夹中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-26
        • 2012-05-14
        • 1970-01-01
        • 1970-01-01
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多