![](https://img-blog.csdnimg.cn/20200106162805362.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
openGL
opengl
goose leaves a mark
这个作者很懒,什么都没留下…
展开
-
cocos shader 用到的数学 抛物线,直线方程篇
在抛物线y^2= -2px 中,焦点是( -p/2,0),准线的方程是x=p/2,离心率e=1,范围:x≤0。在抛物线x^2=2py 中,焦点是(0,p/2),准线的方程是y= -p/2,离心率e=1,范围:y≥0。在抛物线x^2= -2py中,焦点是(0,-p/2),准线的方程是y=p/2,离心率e=1,范围:y≤0。在抛物线y^2=2px中,焦点是(p/2,0),准线的方程是x= -p/2,离心率e=1,范围:x≥0。几乎适用于任何曲线,但是有些例外。说明切圆锥的时候是连着的切的。原创 2022-10-13 20:41:28 · 794 阅读 · 0 评论 -
shadertoy 绘制圆形,方形等基础图案
首先绘制圆形,就是小于半径范围内都显示颜色,大于半径范围显示黑色,这个半径怎么找呢,那需要确定两个点,一个圆心,一个不断变化的点,不断变化的点就是uv坐标,圆心自己定自己怎么开心怎么来.#define S(a,b,t) smoothstep(a,b,t)float circle(vec2 uv,vec2 center) { // uv中的点 - 圆心点 vec2 offset = uv - center; // 半径 float len = length(offset原创 2021-08-03 11:09:47 · 246 阅读 · 0 评论 -
cocos creator 利用shader 实现探照灯效果
探照灯实现效果如下:light.effect// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. CCEffect %{ techniques: - passes: - vert: vs frag: fs blendState: targets: - blend: true rasterizerState: cullMode:原创 2020-06-14 23:09:45 · 2354 阅读 · 4 评论 -
opengl之加载模型
加载模型的时候要用到Assimp库,我这里通过github地址下载:Assimp GitHub地址下载完之后需要用cmake编译到对应的IDE平台,我这里选择vs2017,点击generate就可以生成对应的工程了,让后再Debug目录下的dll文件复制到与exe文件同目录的位置就行了:将.lib文件放到vs中的库文件就行了include文件也同样需要连接到上面去,具体...转载 2019-10-09 20:08:02 · 898 阅读 · 1 评论 -
opengl光照之光照贴图
漫反射贴图我们希望通过某种方式对物体的每个片段单独设置漫反射颜色。有能够让我们根据片段在物体上的位置来获取颜色值得系统吗?这可能听起来很熟悉,而且事实上这个系统我们已经使用很长时间了。这听起来很像在之前教程中详细讨论过的纹理,而这基本就是这样:一个纹理。我们仅仅是对同样的原理使用了不同的名字:其实都是使用一张覆盖物体的图像,让我们能够逐片段索引其独立的颜色值。在光照场景中,它通常叫做一个漫...原创 2019-10-03 20:39:23 · 1027 阅读 · 2 评论 -
opengl之光照
漫反射光照环境光照本身不能提供最有趣的结果,但是漫反射光照就能开始对物体产生显著的视觉影响了。漫反射光照使物体上与光线方向越接近的片段能从光源处获得更多的亮度。为了能够更好的理解漫反射光照,请看下图:图左上方有一个光源,它所发出的光线落在物体的一个片段上。我们需要测量这个光线是以什么角度接触到这个片段的。如果光线垂直于物体表面,这束光对物体的影响会最大化(译注:更亮)。为了测量光线和片...转载 2019-09-29 19:44:49 · 357 阅读 · 2 评论 -
openGL 实现带贴图立方体旋转
首先是顶点数组需要36个顶点数据,这里就不用指定EBO了,因为这些点的有重复的顶点:float cubeVertices[] = { -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.5f, 0.5f, -0.5f, 1.0f, 1.0f, 0.5f, 0.5f, -0.5f, 1....原创 2019-09-25 19:05:44 · 1124 阅读 · 0 评论 -
opengl 实时旋转木箱动态改变混合值
实现这个功能之前需要你学习一下子矩阵的运算,包括向量*矩阵,矩阵*矩阵等等知识:推荐数学向量通过改变矩阵动态的完成物体的运动,用到了第三方库glm:关键转换:boxShader.vs:#version 330 corelayout(location = 0) in vec3 aPos;layout(location = 1) in vec3 aColor;layout(...原创 2019-09-25 16:09:28 · 147 阅读 · 0 评论 -
openGL 纹理
参考网址:opengl中文网这里我只是把几个重点需要注意的地方和重要的知识点说一下,细节的东西还需要到opengl官网中汲取谢谢!顶点坐标包括的纹理坐标:// 带纹理的顶点坐标float textVertices[] = { // ---- 位置 ---- ---- 颜色 ---- - 纹理坐标 - 0.5f, 0.5f, 0.0f, 1.0...转载 2019-09-25 12:05:29 · 314 阅读 · 0 评论 -
opengl 实现三角形逆时针旋转
要实现旋转的操作就会用到旋转公式,这里先贴出2d平面内的旋转公式:x' = x*cos(a) - y*sin(a);y' = x*sin(a) + y*cos(a)这里只需要将a动态的传递给shader程序就行了顶点着色器为:shader.vs#version 330 corelayout(location = 0) in vec3 aPos;layout(loca...原创 2019-09-23 19:35:12 · 1422 阅读 · 0 评论