在glsl 中模拟包含头文件的方法
来源:互联网 发布:淘宝修图教程 编辑:程序博客网 时间:2024/05/16 14:02
小技巧:
1.可以利用宏定义来控制着色器所使用的uniform块和C++中结构体定义的不同地方进行分离。
2.可以在应用程序中控制要定义和使用哪些宏定义来在编译着色器的时候动态设置开关。因为着色器的源码最后可以由多个字符串进行拼接而成。
3.在着色器中设置一个标识符,之后在程序中进行替换
例如 #UNIFORMS。
#UNIFORMS//设置输出每个面片的控制点数目layout (vertices = 4) out;
uniform.h
#ifndef __cplusplus precision mediump float; #define sdk_bool bool #define SDK_BOOL bool #define SDK_VEC2 vec2 #define SDK_VEC3 vec3 #define SDK_VEC4 vec4 #define SDK_MAT4 mat4 layout (std140, binding = 1) uniform#else struct#endifTessellationParams{ float innerTessFactor[2]; float outerTessFactor[4]; SDK_MAT4 mvp;#ifdef CPP //这个在应用程序端设置 TessellationParams() { for(int i = 0; i<4;i++) { if(i<2) { innerTessFactor[i]=1.0f; outerTessFactor[i]=1.0f; }else { outerTessFactor[i] = 1.0f; } } }#endif };
阅读全文
0 0
- 在glsl 中模拟包含头文件的方法
- C++ 在.h文件中包含头文件和在.cpp文件中包含头文件的原则
- 尽量不要在头文件中包含另外的头文件
- 头文件包含方法
- 防止头文件重复包含的方法
- WTL头文件中包含的类
- WTL头文件中包含的类
- WTL头文件中包含的类
- 头文件的包含
- C++ 在.h文件中包含头文件和在.cpp文件中包含头文件有什么区别?
- C++ 在.h文件中包含头文件和在.cpp文件中包含头文件有什么区别?
- C++ 在.h文件中包含头文件和在.cpp文件中包含头文件有什么区别?
- 全局变量可不可以定义在可被多个.C文件包含的头文件中?
- 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
- 全局变量可不可以定义在可被多个.C文件包含的头文件中?
- 全局变量能否定义在可被多个.c文件包含的头文件中?为什么?
- 全局变量可不可以定义在可被多个.c文件包含的头文件中
- 在框架类(CMainFrame)中包含视图类(CView)的头文件出错的解决之道
- HTTP Live Streaming (HLS) 协议科普扫盲
- 关于json串
- 曾鸣:未来十年,将确定智能商业的格局|干货
- 服务器raid硬盘故障导致数据丢失的数据恢复成功案例
- java写文件的三种方式
- 在glsl 中模拟包含头文件的方法
- Python:机器学习的ROC曲线、AUC计算,以及相应的代码
- Python 异常类继承树
- VS2013编译运行常见错误及解决方法
- 2G-3G-4G网络结构演进过程
- 详细解读php的命名空间(一)
- 561. Array Partition I
- idea2017打包某个主函数为可执行jar
- Linux下所有目录及文件的结构说明与其用途