- 博客(98)
- 资源 (6)
- 收藏
- 关注
原创 OPENGL实时PBR路径追踪实现代码
这个是CPU实现的实现步骤,1.把光栅化的图片做第一帧 提取出来然后和光线追踪混合显示在屏幕 未实现2.正题 用2424分辨率进行光线追踪 可以大概得出屏幕显示的模型,这样就可以得到一个比屏幕空间还少的数量三角形进行光线追踪但是灯光的要默认进行光追,3.然后就是1K分辨率进行光线追踪,然后DLSS放大一倍变成2K或者4倍变4k4.光线追踪主要是反射部分,正面射出的颜色和光栅化一样是默认的颜色,我们直接光栅化显示出画面,然后1K分辨率进行光线追踪,这里1K光线追踪只需要24。
2023-03-22 17:05:20 683 1
原创 opengl 着色器中使用 Gbuffer数据 和一些着色器操作教程 第三章
着色器就是显卡 GPU编程着色器一些基本操作内置变量 gl_FragCoordgl_FragCoord.x gl_FragCoord.y 当前像素坐标vec3 有3个变量小数xyz vec2有2个vec2 屏幕坐标= vec2( 50,20) ;vec3 取出颜色= texture(colorTex, 屏幕).rgb; //在纹理中取出对应屏幕坐标数据vec3 颜色混合=(vec3(0.3,0.5,0.5)+vec3(0.5,1,0.3))/2内置变量 FragColor = v
2022-01-27 23:24:40 4727
原创 opengl 自定义帧缓冲Gbuffer 第二章
3大步骤1.在main 入口 创建GbufferGLuint gBuffer;glGenFramebuffers(1, &gBuffer);glBindFramebuffer(GL_FRAMEBUFFER, gBuffer);GLuint gPosition, gNormal, gColorSpec;// - 位置颜色缓冲glGenTextures(1, &gPosition);glBindTexture(GL_TEXTURE_2D, gPosition);glTexIm
2022-01-27 23:03:59 3162
原创 opengl shader1分钟入门教程 第一章
shader 基本使用方法5大步骤#include<glew.h>2.准备顶点 .vs 片元 .fs 文件3.编译 .vs .fs 文件4.创建着色器对象 绑定编译好的3和4如下图5.在循环中 启用着色器对象
2022-01-27 22:39:42 312
原创 SSGI 更高效的SSGI 方案
路径追踪主要就是光线在法线方向随机发射寻找光源所以和法线 距离眼睛的距离(深度有关)首先就是按照三角形的前后深度距离来混合颜色当前像素颜色×(1-深度)+ 周围像素×深度然后就是漫反射了网上很多简单的漫反射教程 太阳 \ | \ | 眼睛 \ _______/ 法线夹角越大角度 亮度越大模拟的大致结
2022-01-20 23:26:56 2941
原创 opencl cuda gpu 加速实践
cuda 只支持N显卡,并且需要参数compute_50,sm_50 算力 就是一般的显卡还用不上opencl 在低端显卡中好像也用不了
2022-01-06 22:26:02 1383
原创 光线追踪 三角形求交加速
比如场景中有100颗树木,1000万三角形我们用10*10 分辨率光追,把相交的三角形重新加入新数组在大分辨率进行光线追踪, 光线追踪反射 能快速判断标记的三角形
2022-01-06 22:20:46 235
原创 光线追踪 反射优化 标记分类
比如一个村庄 我们标记自己房间的4面墙和地板 标记=1光线追踪判断标记相同的三角形 进行判断相交能够很快的找到要反射三角形 或者 追踪的物体
2022-01-06 22:13:31 379
原创 A-SVGF降噪代码实现
float 方差[WIDTH][HEIGHT];vec3 着色[WIDTH][HEIGHT];// A-三阶滤波器 vec3 svgf(int x, int y){ // 5x5 A-Trous kernel float Trous滤波分布[25] = { 1.0 / 256.0, 1.0 / 64.0, 3.0 / 128.0, 1.0 / 64.0, 1.0 / 256.0, 1.0 / 64.0, 1.0 / 16.0, 3.0 / 32.0, 1.0 / 16.0, 1.0 /
2021-12-22 21:24:01 2584
原创 光线追踪 10秒钟学会贴图纹理
首先把一张图片改名1.jpg 放在C盘下面就是SOIL2库 读入图片 保存在 图片纹理 变量SOIL2库 https://share.weiyun.com/EWOP778A#define STB_IMAGE_IMPLEMENTATION#include "SOIL2\stb_image.h" //包含头#pragma comment(lib,"SOIL2.lib") //包含库unsigned char* 图片纹理;//图片内存int nx, ny, nn;int main(){ .
2021-11-22 00:59:29 540
原创 路径追踪 SVGF降噪学习
对比上一帧深度 信息等等差距进行周围像素7v7加权(理解 权重1 1/2=0.5 +0.5 依然不超过1 权重无偏差)然后5v5 滤波3v3高斯模糊时间积累为了重用前一帧中的样本,我们将每个像素样本重新投影到其先前帧,并计算其屏幕空间坐标。这项工作按以下步骤完成:在G-缓冲区中查找当前帧的世界空间位置。使用存储的摄像机视图矩阵将当前世界空间转换为以前的剪辑空间。使用透视投影将以前的剪辑空间转换为以前的屏幕空间。对于每个重投影样本,我们通过比较当前和以前的G-缓冲区数据(法线、位置、对象
2021-11-18 20:25:13 4309
原创 实时路径追踪篇 简洁漫反射
我们用低差异漫反射4次就能得到一个较好的降噪图但是反射到物体 比如球,人物,树,对物体划分,墙体漫反射过滤物体,如此得到一个简洁的墙壁,通过一次对物体方向(原法向量)得到反射阴影,只一次,如此,就不需要几百次渲染,几次就能得到一个能看过去的墙壁,主要是光线追踪多个方向,产生多个位置阴影如果不是靠积分贡献,那么满墙壁都是物体阴影我们大部分都过滤掉物体进行漫反射,还能减少对物体的光线追踪计算量...
2021-11-16 20:47:17 253
原创 实时路径追踪篇 光追材质
路径追踪的是一个从0到100的过程这个渐变的过程非常慢最好在材质上下点功夫比如在一个普通的亮度中 场景预渲染好的贴图可以从70到100的过程可以节约很多
2021-11-15 20:45:18 272
原创 实时路径追踪篇 材料分类
分类可以加速初期的效果,避免真空期反射材质 1SPP折射材质 4spp漫反射材质 1spp控制光线追踪初期的深度加速得到好的效果
2021-11-12 23:08:43 851
原创 实时路径追踪篇 贡献度计算阴影
计算屏幕每一个像素的贡献返回颜色≠0 像素[i][j]++1; //快速计算出阴影的百分比通过百分比,均匀的调整阴影一般的路径追踪颜色需要上百帧才能把颜色叠加出来我们通过贡献度,快速的计算出阴影...
2021-11-04 06:57:55 92
原创 实时路径追踪篇 反射和折射
这是4核多线程光线追踪效果 200×200分辨率 就能拥有140帧率,在路径追踪的时候反射和折射1帧就能得到不错的效果
2021-10-31 16:59:18 181
原创 实时路径追踪篇 逆变换
转动前获取摄像机所有2d转3d坐标和颜色(好像有个延迟渲染的g缓冲可以快速得到信息)转动摄像机后,重新获取一遍坐标,对比转动前的坐标,一样的把原来的颜色显示到目前的位置上
2021-10-29 17:30:10 76
原创 路径追踪 降噪加速方法 屏幕像素颜色预记忆法 类似AI降噪
vec3 屏幕颜色记忆颜色[WIDTH][HEIGHT]; vec3 期待渲染近似效果[WIDTH][HEIGHT];该加速方法需要 渲染过一次 ,有了样本 才能加速屏幕颜色记忆颜色[i][j]=物体颜色 只在摄像机转动第一帧记录期待渲染近似效果[i][j]=过去 渲染好的图像颜色每次场景变了 ,我们判断屏幕颜色记忆颜色[i][j] 原始颜色,如果上一次记录是白色墙壁并且已经渲染了一次,那么久有了最终 渲染效果,我们直接返回渲染好的颜色期待渲染近似效果[WIDTH][HEIGHT]
2021-10-28 00:11:14 121
原创 路径追踪 多线程并行加速
这是CPU的主要#include #include DWORD WINAPI myfun1(LPVOID lpParameter); //声明线程函数DWORD WINAPI myfun2(LPVOID lpParameter);DWORD WINAPI myfun1(LPVOID lpParameter)for (int i = 0; i < HEIGHT; i += 2)DWORD WINAPI myfun2(LPVOID lpParameter)for (int i =1; i
2021-10-27 10:12:31 100
原创 实时路径追踪篇 碰撞加速整合
1.第一步肯定是减少模型面数 比如一面墙2个三角形计算量只有2个2.按模型分开,分为n*n矩阵中,每条光线计算方向判断矩阵储存求交=真的三角形,那么每次光线都先对常用的进行判断3.复用上一个像素的三角形第一个进行判断,比如一面墙大部分求交都是重复的4.she bvh加速,每次都减去一半三角形5.这里只在第一帧使用,80*80先进行小图的碰撞判断,并把三角形数据扩大到大分辨率,之后大部分光线应该都能用上,这一步可以快速获取到大部分的正确碰撞三角形6.比如建立800*800的三角形求交数据,上一
2021-10-27 06:26:00 223
原创 路径追踪 低差异序列 sobol序列采样
sobol 是一种均匀数组替代随机半球采样,对降噪非常好引用如下vec2 ua=sobolVec2(int(frameCounter)+1,maxBounce);vec3 L = SampleCosineHemisphere(ua.x, ua.y, N);完整项目代码https://blog.csdn.net/asaqlp/article/details/120828724fshader.fsh#version 330 corein vec3 pix;out vec4 fragColor;
2021-10-19 23:18:19 2869
原创 路径追踪 重要性采样
vec3 color = vec3(0.5,0.0,0.5);// vec3 color = hdrColor(L);hdrColor() 函数 不知道是什么,随便返回 一个颜色fshader.fsh#version 330 corein vec3 pix;out vec4 fragColor;// ------------------------------------------------------------------------...
2021-10-19 04:43:25 271
原创 路径追踪 GPU 微平面理论与迪士尼 BRDF
直接整合了别人的博客代码最后那个各向异性切线 X 和 Y 变量不知道怎么定义所以没加上直接把上一篇博客 换下面这个fshader.fsh#version 330 corein vec3 pix;out vec4 fragColor;// ----------------------------------------------------------------------------- //uniform uint frameCounter;uniform int nTri
2021-10-18 18:12:56 156
原创 路径追踪 GPU加速SHE BVH加速
color = mix(lastColor, color, 1.0/float(frameCounter+1)); color = mix(lastColor, color, 1.0/(float(frameCounter)+1));代码转载的,修改了上面的代码,可以正常运行了不玩虚的项目代码 https://share.weiyun.com/kxYZuCv6X32 Release 完全优化 库已打包...
2021-10-18 16:22:16 234
原创 路径追踪降噪 加速 小图预采样 优化
有一些降噪的效果,如果小图扩大用渐变色,技能直接降噪了完整代码 https://share.weiyun.com/DpDkb9k1
2021-10-17 02:42:13 130
原创 路径追踪 小图预采样
先光追一张4040小图再光追一张400400的大图,通过对小图的采样信息放大到对应的大图快速整张图光追信息大概采样样本小图放大都是格子,最后分散的时候颜色渐变完整代码 https://share.weiyun.com/YtDDlteH...
2021-10-17 00:22:36 79
原创 光线追踪路径追踪BRDF物理渲染实现
#include <iostream>#include <vector>#include <random>#include <stdlib.h>#include <glm/glm.hpp> // 数学库支持#include <omp.h> // openmp多线程加速#include<freeglut.h>#include<ctime>#include<mmintrin.h>
2021-10-13 02:56:34 315
原创 路径追踪低差异序列和重要性采样
#include <iostream>#include <vector>#include <random>#include <stdlib.h>#include <glm/glm.hpp> // 数学库支持#include <omp.h> // openmp多线程加速#include<freeglut.h>#include<ctime>#include<mmintrin.h>
2021-10-11 03:55:57 246
Optix光线追踪开发SDK完整包
2017-12-01
编译好的boost库1.55
2015-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人