VC++
小雨丶
这个作者很懒,什么都没留下…
展开
-
路径追踪 随机追踪法提速一倍
随机2分之一进行 光线追踪,另一半取前一个像素颜色,效果还行,速度提升一倍原创 2021-10-28 02:39:50 · 218 阅读 · 0 评论 -
实时路径追踪篇 碰撞加速整合
1.第一步肯定是减少模型面数 比如一面墙2个三角形计算量只有2个2.按模型分开,分为n*n矩阵中,每条光线计算方向判断矩阵储存求交=真的三角形,那么每次光线都先对常用的进行判断3.复用上一个像素的三角形第一个进行判断,比如一面墙大部分求交都是重复的4.she bvh加速,每次都减去一半三角形5.这里只在第一帧使用,80*80先进行小图的碰撞判断,并把三角形数据扩大到大分辨率,之后大部分光线应该都能用上,这一步可以快速获取到大部分的正确碰撞三角形6.比如建立800*800的三角形求交数据,上一原创 2021-10-27 06:26:00 · 215 阅读 · 0 评论 -
路径追踪 低差异序列 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 · 2819 阅读 · 0 评论 -
路径追踪 重要性采样
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 · 263 阅读 · 0 评论 -
路径追踪 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 · 144 阅读 · 0 评论 -
路径追踪 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 · 224 阅读 · 0 评论 -
路径追踪降噪 加速 小图预采样 优化
有一些降噪的效果,如果小图扩大用渐变色,技能直接降噪了完整代码 https://share.weiyun.com/DpDkb9k1原创 2021-10-17 02:42:13 · 121 阅读 · 0 评论 -
路径追踪 小图预采样
先光追一张4040小图再光追一张400400的大图,通过对小图的采样信息放大到对应的大图快速整张图光追信息大概采样样本小图放大都是格子,最后分散的时候颜色渐变完整代码 https://share.weiyun.com/YtDDlteH...原创 2021-10-17 00:22:36 · 70 阅读 · 0 评论 -
光线追踪路径追踪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 · 301 阅读 · 0 评论 -
路径追踪低差异序列和重要性采样
#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 · 236 阅读 · 0 评论 -
路径追踪 矩阵加速法
场景 由大包围盒 找到小包围盒,碰撞小包围盒表示击中模型,创建一个矩阵魔方,6面6宫格,每个宫格计算光线交点,比如击中6号宫格,这个格子提前把对应的模型三角形数据,光线直接避免与其他整个场景数千万三角形求交, 只需要碰撞大包围盒,定位模型包围盒,再判断光线与哪个小魔方格子相交,然后光线追踪这个格子中几个三角形,可以节省千百万次三角形碰撞,追求碰撞最大化...原创 2021-10-01 18:12:46 · 132 阅读 · 0 评论 -
路径追踪 光栅化结合
光线追踪光栅化混合渲染前面提到过光栅化先渲染一张图,上面颜色变化的进行光线追踪 称之为动态光线追踪没有变化的颜色不进行光线追踪,节省CPU这样需要光栅化的支持 后台渲染(也称离线渲染 离屏渲染)光线追踪加速思路已经说了,下面就自己把 后台渲染图提取出来配合光线追踪渲染如何移植到光线追踪研究一下,以下代码完整编译无误OpenGL 后台渲染 完整代码#include <iostream>#include <string>#include <fstream&g原创 2021-09-28 02:11:09 · 305 阅读 · 0 评论 -
路径追踪 加速控制模型面数
一个围墙2个三角形就好了,有些模型成千上万三角形,减少三角形也能对光线追踪加速原创 2021-09-27 14:04:45 · 96 阅读 · 0 评论 -
路径追踪 碰撞记忆法
对一个物体进行记录他反射碰撞到哪些物体 记下几个 固定的物体优先计算碰撞,实现加速类似AI算法原创 2021-09-27 11:49:42 · 98 阅读 · 0 评论 -
路径追踪 碰撞复用
1.求交函数精简和优化2. 减少三角形求交 已实现3. svgf滤波 1*n模糊滤波4. 光栅化渲染场景带阴影 出图快 取图上颜色进行结合光线追踪采样放大滤波5. 光栅化渲染场景带阴影 出图快 对图片四周颜色多次没有变化的去掉光线追踪节省一半CPU6. 优先求交 求交三角形复用,比如一个背景是墙壁那么30%光线追踪都重复求交这个墙壁,我们直接拿出来放在第一次求交,可以减少对整个场景的碰撞 已实现第7种加速算法 提前准备光追法光线照射在左边墙壁 反射 计算方向 对应 右边墙壁 如此不需要 对原创 2021-09-27 11:46:38 · 88 阅读 · 0 评论 -
路径追踪 优先求交
在我的博客第一篇光线追踪代码,优化的光线与物体求交算法原理 上一次光线与物体 碰撞的物体 记录下来 下一个像素光线追踪第一个进行求交替换掉第一份 中shoot()std::vector<Shape*> 屏幕优先物体;Shape* shape2= new Shape;// 返回距离最近 hit 的结果光线求交结果 shoot(std::vector<Shape*>& shapes, Ray ray ,int 进度){ 光线求交结果 res, r; res原创 2021-09-24 15:14:38 · 85 阅读 · 0 评论 -
路径追踪 SAH优化的Bvh
BVH 层次包围盒SAH 优化BVHBVH具体怎么做我们加载模型用数组 一个个记录模型的三角形 和材质光线追踪 判断光线和模型相交时返回命中的三角形 颜色材质每次判断相交都是 把整个场景三角形 全部遍历 可想而知会很慢就需要我们优化 把他们按照区域分类开来先判断 光线和区域相交再判断区域中的三角形,一层层下去避免浪费 这就是Bvh结构图片中的兔子就是按照250*250 直线判断相交 ,返回三角形表示命中, 这个点就显示出颜色for (int i = 0; i < WID原创 2021-09-21 20:26:12 · 883 阅读 · 1 评论 -
路径追踪 c++代码
学习光线追踪5天了,一直没有学习过路径追踪的代码,前几天看到有博主发的路径追踪教程,我就学习了,第一次运行出错发现是glew32.dll 错误下了新的,发现路径追踪程序能够正常运行了,窗口256*256分辨率卡了几分钟太伤电脑了,一定要加速他就这样开始优化了。1.首先我们先了解什么是光线追踪渲染光栅化 矩阵渲染 有点像魔方 现在的游戏都用这样方式模拟速度快光线追踪 通过屏幕像素 判断直线相交的模型 多次反射得到最优颜色,画面效果逼真路径追踪 分为正向 和双向路径追踪,路径追踪是 几千次光线原创 2021-09-21 20:12:30 · 455 阅读 · 1 评论 -
使用win32 api和C++开发的软件光栅化渲染器。
源代码为B站UB转载光栅化 就是三维正方形 上面都是点阵,通过显示矩阵旋转渲染显示代码为vs2013,vs2019 无依赖库链接:https://pan.baidu.com/s/1tCpvyYM1c3fiic6HisO5UA提取码:qazb原创 2021-09-13 16:54:58 · 222 阅读 · 0 评论 -
OpenGL 体积光 光柱实现代码解读教程
engine.cpp 图GL依赖库大全 链接:https://pan.baidu.com/s/13jJIhkOdMetsPSkbKfbUmg提取码:n0ud体积光源代码 链接:https://pan.baidu.com/s/17kycTiPfwVU1IrBPdnOMNg提取码:7fjw原创 2021-09-11 11:39:07 · 578 阅读 · 2 评论 -
OpenGL PCF阴影实现代码解读教程
GL依赖库大全 链接:https://pan.baidu.com/s/13jJIhkOdMetsPSkbKfbUmg提取码:n0udPCF 源代码 链接:https://pan.baidu.com/s/1ts6hpcm9yH6p73nn64xGoQ提取码:ivds原创 2021-09-11 11:29:12 · 319 阅读 · 0 评论 -
OpenGL VSM阴影代码实现解读教程
GL依赖库大全 链接:https://pan.baidu.com/s/13jJIhkOdMetsPSkbKfbUmg提取码:n0udVSM 源代码 链接:https://pan.baidu.com/s/1JWKN-efUhn86Os23RbEjYg提取码:tapg使用glad.h库的源代码 链接:https://pan.baidu.com/s/1Kvb9RdLFF1m4nHHaemUU8A提取码:1tvg...原创 2021-09-11 11:28:33 · 484 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 解决办法
项目场景:vs C++vs C++中 error LNK2019: 无法解析的外部符号 解决办法问题描述:<font color=#999AAA >vs C++中 在A.cpp中 定义一个变量 k, A.h头文件声明k 为全局变量 但是在main.cpp 文件中想要使用这个变量就出现无法找到库函数,# 原因分析:<font color=#999AAA >提示:这里填写问题的分析:例如:Handler 发送消息有两种方式,分别是 Handler.ob原创 2021-05-11 22:36:55 · 1199 阅读 · 0 评论 -
可视化中文C++编程开发支持流程线和表格智能提示
这是我为新手开发的一个c++IDE, 希望大家能支持一下,原创 2021-01-01 03:57:51 · 354 阅读 · 0 评论 -
VS2013MFC对话框工程学习笔记九 - C++语法的的学习
1. if和else学习了一下if (如果)和else(否则)命令的语法int a=1; int b=4;if(a+b>5) //如果A+B>5 //返回5{return 5;}else //否则返回0{return 0;}2.for(循环)for(int a=0;a != 10;)//("!"是"原创 2016-04-11 20:15:12 · 1046 阅读 · 0 评论 -
VS2013MFC单文档工程学习笔记三 - 按钮添加响应事件
按钮添加响应事件是什么意思呢意思是比如你点击就会出现什么事件,这就是响应事件现在开始笔记需要写一个类函数来响应 来自按钮的消息在类里面写入下面的代码 在第二章的里的那个类class CMFAppView : public CView 在这个类下面写public: afx_msg void app();afx_msg 是告诉编译器特别处理原创 2015-06-11 09:00:07 · 3616 阅读 · 0 评论 -
opengl笔记1
一.创建工程项目1.VC创建控制台项目2.新建,源代码.cpp 文件二.包含GL图形api头文件1.#define GLUT_DISABLE_ATEXIT_HACK//这句代码解决gl库编译错误#include 三.创建GL窗口1.void init(void){ glClearColor(0.0, 0.0, 0.0, 0.0);//设置背景颜色为黑原创 2017-10-13 16:53:49 · 231 阅读 · 0 评论 -
让Irrlicht鬼火引擎显示中文
在网站找到源代码虽然是正确支持中文,却难以编译,经过几天的修改终于正确编译了需要的文件全部打包点击下载原创 2017-06-15 02:13:33 · 614 阅读 · 0 评论 -
VS2013MFC对话框工程学习笔记五 - 了解窗口和窗口控件的属性并修改
在VS中,对着窗口控件点击鼠标右键,单击属性弹出属性对话框可以编辑控件的基本属性,比如:窗口标题,窗口大小,控件大小等等原创 2016-04-11 19:08:56 · 3957 阅读 · 0 评论 -
VS2013MFC对话框工程学习笔记四 - 为按钮添加一个响应事件二
我们把代码中的CDialogEx::OnOK();删除void CMFCApplication1Dlg::OnBnClickedOk(){ // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnOK();}添加一个信息框的消息MessageBox(_T("Hello World"),_T("Hello World"),MB_OK|MB_IC原创 2016-04-11 18:59:40 · 1957 阅读 · 0 评论 -
VS2013MFC对话框工程学习笔记三 - 添加一个MFC类库的按钮响应事件
双击窗口上的控件,就可以添加控件的响应事件原创 2016-04-11 18:39:14 · 1623 阅读 · 0 评论 -
VS2013MFC对话框工程学习笔记二 - 了结布局和一些基本的窗口组件
在VS中按下 Ctrl+Alt+X 打开窗口控件的 工具箱我们就可以拖动工具箱的控件添加到窗口上了原创 2016-04-11 18:29:40 · 1824 阅读 · 1 评论 -
VS2013MFC对话框工程学习笔记一 - 新建MFC对话框项目
完成原创 2016-04-11 11:15:30 · 2423 阅读 · 2 评论 -
重点:VS2013MFC单文档工程学习笔记六 - 窗口的常用消息事件
在类视图中选中View视图类,接着在属性窗口中选中“消息”选项,然后滚动滚轮找到下面说的常用消息,点中下拉框,选中“添加 ”,接着便可以看到代码中出现的消息映射函数的声明了和第二节的笔记是差不多的 WM_CREATE = $0001 //创建一个窗口完毕WM_CLOSE = $0010 //窗口是否可被关闭 W原创 2015-06-11 22:43:15 · 1423 阅读 · 0 评论 -
VS2013MFC单文档工程学习笔记八 - 为窗口添加一张背景图片
方法一:1、声明成员变量CBrush m_brush;2、在InitDialog中添加代码:CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP1是图片资源IDm_brush.CreatePatternBrush(&bmp);3、重载对话框的OnCtlColor,改最后的返回值:1return (HBRUSH)m_br原创 2015-06-12 01:53:33 · 5333 阅读 · 0 评论 -
VS2013MFC单文档工程学习笔记七 - 创建新的一个窗口并让窗口2透明
开始笔记 一.首先新建一个窗口类,我写好了,直接复制进去class CChildFrame : public CFrameWnd{private: public://公开下面的类成员函数 afx_msg void OnPaint();//WM_PAINT消息,直接写好了,不喜欢就自己添加消息 CChildFrame();//类被调用后初始化};把上面代码复制到MFApp原创 2015-06-12 00:50:23 · 2972 阅读 · 0 评论 -
VS2013MFC单文档工程学习笔记五 - 控件移动
移动的使用 需要使用控件中的类函数MoveWindow窗口也可以用 控件的使用方法是anniu1[1].MoveWindow(CRect(500 , 10, 500 , 50));anniu1[1]. 是上一节的笔记中100个创建的控件中数组1,就是第一个控件 ,第一个按钮控件MoveWindow 是移动的意思CRect 矩形 以原创 2015-06-11 11:40:03 · 1356 阅读 · 0 评论 -
VS2013MFC单文档工程学习笔记四 - 动态创建多个控件
一些常用的控件名按钮控件 CButton 编辑控件 CEdit静态文本控件 CStatic标签控件 CTabCtrl旋转控件 CSpinButtonCtrl滑标控件 CSliderCtrl多信息编辑控件 CRichEditCtrl进度条控件 CProgressCtrl滚动条控件 CSrcollBar组合框控件 CComboBox列表框控件 CListBo原创 2015-06-11 11:07:31 · 3542 阅读 · 4 评论 -
VS2013MFC单文档工程学习笔记二 - 新建一个按钮
首先在VIEW头文件中找到类复制这代码进去private: CButton anniu1;复制到类里 这样就声明了一个按钮然后添加按钮的ID号,就是声明他的ID号,要特别的不能和其他的控件重复就在这个类的前面复制写上 #define ID_anniu130 130我的是#define IDB_BTN 130class CMFAppView : pu原创 2015-06-11 08:00:16 · 4868 阅读 · 5 评论 -
VS2013MFC单文档工程学习笔记一 - 新建MFC单文档项目
我学习用的是VS2013中文版 ,大家自己下载VS2013中文版现在开始笔记1.点击左上角的 文件 - 新建 - 项目(P)- MFC - MFC应用程序 自己打个名字, 点击确定出现一个窗口点击下一步 选择 单个文档 MFC 标准 - 点击确定,生成项目原创 2015-06-11 07:50:45 · 5907 阅读 · 0 评论