Advertisement

osgEarth的Rex引擎原理分析:Rex自带的着色器代码是否会编码到动态库?

阅读量:

目标:(九十一)中的问题173

答案:是的。

该思路的核心在于将所有着色器文件的源码整合到一个C++源代码文件中的变量存储中,并通过编译链接操作完成这些代码的一次性处理。这使得着色器相关的代码被固定下来并包含在最终生成的静态库中。

秘密隐藏于rex引擎目录中的文件Shaders.cpp.in最终将生成AutoGenShaders.cpp

复制代码
 // ***DO NOT EDIT THIS FILE - IT IS AUTOMATICALLY GENERATED BY CMAKE***

    
  
    
 #include <osgEarthDrivers/engine_rex/Shaders>
    
  
    
 using namespace osgEarth::Drivers::RexTerrainEngine;
    
  
    
 Shaders::Shaders()
    
 {
    
     ENGINE_VERT_MODEL = "RexEngine.vert.glsl";
    
     _sources[ENGINE_VERT_MODEL] = "@RexEngine.vert.glsl@";
    
  
    
 	ENGINE_ELEVATION_MODEL = "RexEngine.elevation.g

全部评论 (0)

还没有任何评论哟~