
OpenGL
skillart
It is me.
展开
-
OpenGL ES shader to convert color image to black-and-white infrared?
OpenGL ES shader to convert color image to black-and-white infrared?原创 2022-09-14 15:21:32 · 353 阅读 · 1 评论 -
GAMES202-现代计算机图形学学习作业01
在计算pcf的时候不知道Filtersize怎么算。在learnopenGL中是根据shadowMap的贴图大小计算的。vec2 texelSize = 1.0 / textureSize(shadowMap, 0);看到nvidia的关于pcss的介绍,代码里面有关于Filtersize的具体代码。https://developer.download.nvidia.cn/shaderlibrary/docs/shadow_PCSS.pdfhttps://developer.downloa原创 2021-04-12 02:55:27 · 1228 阅读 · 0 评论 -
GAMES101-现代计算机图形学学习作业06
BVHAccel::getIntersectionIntersection BVHAccel::getIntersection(BVHBuildNode* node, const Ray& ray) const{ Intersection in; Vector3f invDir; invDir.x = 1/ray.direction.x; invDir.y = 1/ray.direction.y; invDir.z = 1/ray.direction.原创 2021-04-04 04:41:28 · 635 阅读 · 0 评论 -
OpenGL 相机自由观看
俯仰角pitch:机体轴与地平面(水平面 )之间的夹角,飞机抬头为正;偏航角yaw:机体轴在水平面上的投影与地轴之间的夹角,以机头右偏为正。x/z就是水平面。方向direction归一化长度是1可知方向direction.y = sin(glm::radians(pitch)); // 注意我们先把角度转为弧度在xz平面的投影长度是xz_Len =cos(glm::radians(pitch));direction.x = xz_Len* cos(glm::radians(y...原创 2020-09-29 16:29:26 · 194 阅读 · 0 评论 -
LookAt 矩阵
最近阅读源码的时候发现在算Lookat矩阵的时候最后一个轴的向量没有归一化,但是网上的很多源码却做了归一化。是因为:当两个单位向量正交的时候,叉乘得到也是单位向量,所以没有必要再进行一次归一化。求最后一个轴的时候那两个单位向量已经是正交了。...原创 2020-07-25 21:13:35 · 1163 阅读 · 1 评论 -
OpenGL 关于立方体贴图优化的疑问
现在我们在渲染场景中的其他物体之前渲染了天空盒。这么做没错,但是不怎么高效。如果我们先渲染了天空盒,那么我们就是在为每一个屏幕上的像素运行片段着色器,即使天空盒只有部分在显示着;fragment可以使用前置深度测试(early depth testing)简单地被丢弃,这样就节省了我们宝贵的带宽。所以最后渲染天空盒就能够给我们带来轻微的性能提升。采用这种方式,深度缓冲被全部物体的深度值完全填充...原创 2019-08-01 16:20:43 · 225 阅读 · 0 评论 -
OpenGL 关闭深度缓冲写入引发的一个小问题
我无意中做了一个这样的操作:{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glDepthMask(GL_TRUE);DrawCube();glDepthMask(GL_FALSE);}结果立方体画不出来了。换成这样就正常:{glDepthMask(GL_TRUE);glClear(GL_COLOR_BUFF...原创 2019-08-01 15:56:22 · 1115 阅读 · 0 评论 -
OpenGL帧缓冲实现后视镜效果
觉得教程有点问题。 camera.Yaw += 180.0f; // Turn the camera's yaw 180 degrees around camera.Pitch += 180.0f; // Turn the camera's pitch 180 degrees around camera.ProcessMouseMovement(...原创 2019-07-31 20:58:50 · 628 阅读 · 0 评论 -
OpenGL混合注意事项
1.当采样纹理边缘的时候,OpenGL在边界值和下一个重复的纹理的值之间进行插值(因为我们把它的放置方式设置成了GL_REPEAT)。这样就行了,但是由于我们使用的是透明值,纹理图片的上部获得了它的透明值是与底边的纯色值进行插值的。结果就是一个有点半透明的边,你可以从我们的纹理四边形的四周看到。为了防止它的出现,当你使用alpha纹理的时候要把纹理环绕方式设置为GL_CLAMP_TO_EDGE...原创 2019-07-31 17:09:51 · 196 阅读 · 0 评论 -
OpenGL 加载模型
使用assimp加载,引用动态链接库dll主要有两种方法:法1:配置属性->调试->环境:输入path=包含dll文件的文件夹路径,【注意】path(空格)=路径、path=(空格)路径、path(空格)=(空格)路径等写法都会导致dll引用失败。法2:将dll文件拷贝到生成的.exe所在的文件夹中代码:// Std. Includes#include <...原创 2019-07-29 21:13:25 · 1169 阅读 · 0 评论 -
GLSL绑定多个Texture
首先生成纹理索引GLuint textures[] = { -1, -1 };glGenTextures(2, textures);glGenTextures第一个参数是生成texture索引的个数,第二个是索引的指针.通过生成索引之后会发现textures的值变成{1,2}//绑定纹理 glBindTexture(GL_TEXTURE_2D, textur原创 2017-02-20 10:31:33 · 1958 阅读 · 0 评论 -
实现photoshop 颜色混合的shader
实现photoshop 颜色混合的shader这个过程很是艰辛呐!国内博客查找到的说明基本上都是这样 颜色模式: 是采用底色的亮度以及绘图色的色相、饱和度来创建最终色。它可保护原图的灰阶层次,对于图像的色彩微调、给单色和彩色图像着色都非常有用。 Color 颜色 HcScYc =HASAYB 输出图像的亮度为下层,色调和饱和度保持为上层甚至wiki说明也是这样: The原创 2016-08-24 00:00:11 · 3257 阅读 · 1 评论 -
Vs2013 OpenGL配置
推荐一篇好的教程。http://learnopengl.com/出现的错误1.error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup找不到_WinMain入口函数,这个是windows applcition的入口函数,但是我用的是main(),原创 2015-12-08 17:46:10 · 1011 阅读 · 0 评论 -
cocos2dx shader在android上失效
因为在win32上正常,但是到了android上logcat上没有关于shader错误的信息。shader好难调试,最后发现是精度问题。float类型的和int类型的比较大小就发现shader没有起作用了。类型匹配后一切都ok了。原创 2016-08-30 17:17:16 · 1745 阅读 · 0 评论 -
实现photoshop 正常混合的shader
实际上就是openGl里面的混合模式{GL_SRC_ALPHA,GL_ONE_MIUNS_SRC_ALPHA}但是因为直接在cocos里面用混合模式就会多创建一个精灵,由于图片较大没有加入图集所以会增加draw call。就用shader实现了一个。vec4 BlendNormal(vec4 src, vec4 des) { float sr = src.a; fl原创 2016-08-25 17:27:47 · 1500 阅读 · 0 评论 -
HSL to RGB
转载:http://axonflux.com/handy-rgb-to-hsl-and-rgb-to-hsv-color-model-cReposted from mjijackson.com -- this is so cool that we should make sure there are more copies of this on the net, jus转载 2016-08-17 15:21:39 · 1136 阅读 · 0 评论