OpenGL自定义着色器

本文的意图在于如何使用OpenGL自定义Shader。

首先确保你会绘制窗体和三角形:传送门


之前 Shader是直接写在代码里面了,用起来很不方便
一般项目的方式都是自定义shader文件,然后读取文本内容

如何实现?

1.自定义Shader类

shader.h 头文件
主要功能:
a)程序ID
b)读取文本并构建编译着色器
c)激活/释放程序
d)设置自定义参数(uniform)

#ifndef SHADER
#define SHADER

#include <glad/glad.h> // 包含glad来获取所有的必须OpenGL头文件

#include <string>
#include <fstream>
#include <sstream>
#include <iostream>

class Shader
{
   
public:
	//程序ID
	unsigned int ID;

	//构造函数,构建着色器
	Shader(const char* vertexPath, const char* fragmentPath);

	//使用/激活程序
	void use();
	void del();

	//uniform工具函数
	void setB(const std::string &name, bool v1) const;
	void setF(const std::string& name, float v1) const;
	void setF3(const std::string& name, float v1, float v2, float v3) const;
};

#endif SHADER

shader.cpp实现文件
功能详解都在代码里有注释
主要功能:
a)通过ifsteam读取文件内容
b)编译shader链接着色器程序
c)对于Uniform的设置

#include
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值