OPENGL自学记录(二)

将一中的b站视频听完,超级基础入门的东西。继续上次的。
设置顶点着色器

//顶点着色器源码存入字符串 动态编译不报错
	const char* vertexShaderSource = "#version 410 core\n"
		"layout(location=0) in vec3 aPos;\n"
		"out vec4 vertexColor;\n"
		"void main()\n"
		"{\n"
		"vertexColor = vec4(1.0f,0.0f,0.0f, 1.0f);\n"
		"gl_Position = vec4(aPos.x,aPos.y,aPos.z, 1.0f);\n"
		"}\n\0";

顶点着色器程序建立

int vertexShader = glCreateShader(GL_VERTEX_SHADER);//创建顶点着色器对象
	glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);//将源码赋给着色器对象
	glCompileShader(vertexShader);//编译着色器
	glAttachShader(shaderProgram, vertexShader);//将编译好的顶点着色器附加到程序上
	glLinkProgram(shaderProgram);//链接生成程序

EBO
从顶点数据中检索,选取输出双三角形线框

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);//画图模式设置边框or填充 GL_LINE
glGenBuffers(1, &EBO);//生成
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);//绑定,缓冲类型
//往显卡写值,分配显存空间
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
glDrawElements(GL_TRIANGLES, 6,GL_UNSIGNED_INT,0);//EBO绘图

Uniform

int shaderProgram;
int vertexColorLocation;
float timeValue = glfwGetTime();
float greenValue = (sin(timeValue));
glUniform4f(vertexColorLocation, 0.2f, greenValue, 0.0f, 1.0f);
const char* fragmentShaderSource = "#version 410 core\n"
		"in vec4 vertexColor;\n"
		"out vec4 FragColor;\n"
		"uniform vec4 ourColor;\n"
		"void main()\n"
		"{\n"
		"FragColor = ourColor;\n"
		"}\n\0";
vertexColorLocation=glGetUniformLocation(shaderProgram, "ourColor");

color3f/shader/texture和光照还是不太懂,慢慢学吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值