![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DirectX
文章平均质量分 97
理塘顶针
相信美好
展开
-
C++对象与内存的探索
一. 内存的存储C/C++编译的程序占用的内存分为:栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。比如Class a(),这个a就是在栈里的,超出变量的生存周期会自动释放。堆区(heap):由程序员new,new出来的内存需要手动或编程delete掉,否则反复new会发生内存泄漏。进程结束后,系统会全部释放。全局区(static):全局变量和静态变量的存储是放在一块的。文字常量区:常量字符串就是放在这里的,程序结束后由系统释放。程序代码区:存放函数体的二进制代原创 2020-11-19 19:48:35 · 310 阅读 · 1 评论 -
DirectX11学习笔记十三 进阶的程序框架
其实就是Chili Framework一 从最底层说起1. Bindable&Codex模式对于渲染一个最基本的立方体来说,一般最简单的步骤是这样的(忽略掉WindowsSDK那些东西):void Init(){ DXGI_SWAP_CHAIN_DESC sd = {}; sd.BufferDesc.Width = 0; sd.BufferDesc.Height = 0; sd.BufferDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; sd.原创 2020-08-20 21:47:56 · 1057 阅读 · 2 评论 -
DirectX11学习笔记十二 高斯模糊描边
感谢Chili的教程这一节属于PostProcessing,需要用到RenderToTexture的知识。复习一下渲染物体可能需要绑定的Com组件:组件名称用途ID3D11InputLayout定义VertexBuffer的输入格式,比如Pos,TexCoordID3D11Buffer(as VertexBuffer)存储要输入的顶点数据结构...原创 2020-05-27 23:12:26 · 1051 阅读 · 0 评论 -
DirectX11学习笔记十一 法线映射
回顾光照公式前面学的局部光照里用到了与法线有关的计算公式,也就是漫反射,以点光源为例回顾一下:其中 漫反射光D = 漫反射材质系数 点乘 (入射光反方向 点乘 法向量) 点乘 入射光颜色,如下图所示镜面高光S = 镜面高光材质系数 点乘 (出射光向量 点乘 顶点或像素到摄像机向量)^高光系数 点乘 入射光颜色,如下图所示:之前计算光照用到的法线都是网格上根据三角形两条边叉乘得到的,但...原创 2020-05-03 17:09:48 · 517 阅读 · 0 评论 -
DirectX11学习笔记十 imGUI入坑
下载地址 Immediate Mode Graphical User interface,Immediate模式,不保存UI对象,用静态方法创建,Unity里的GUI就是这种模式,适合小游戏或快速开发,如果要做动画或者保存状态,可能需要自己额外封装一层,好处就是好写,虽然我还是喜欢UGUI的那种。入坑方法: 进入github官网下载源码,将这些文件拖入自己的项目,比如单独弄一个imGUI...原创 2020-03-25 20:27:28 · 4134 阅读 · 0 评论 -
DirectX11学习笔记九 平面阴影 简易代码框架
本来说这节打算自己搞一个D3D框架的,但是跟了外网的教程走了半个月后发现Chili的框架对于我这种初学者而言太过于事无巨细,如果只想学习d3d api以及用其要达到什么效果的话,有些“重量级”,所以我打算两手抓了,相比沉浸在c++新特性和指针、泛型里,我相信龙书的教程更有指向性。拿龙书与Chili的教程相互比较学习,还是不错的,有了Chili的基础,再看龙书的代码感觉就快多了。...原创 2020-03-20 18:32:48 · 312 阅读 · 0 评论 -
DirectX11学习笔记八 平面镜 模版测试
一开始看到平面镜效果我以为要在着色器里写光反射blablabla(我是菜鸟),后来发现,教程中实现平面镜的方法是把场景渲染两次,一次正常渲染,一次镜像渲染,然后设置一个模版将平面镜表面以外的镜像部分剔除掉,只显示镜子中的部分,就像unity里的LayerMask一样。要做到上面的工作,需要弄明白两个问题如何剔除平面镜以外的镜像部分如何渲染镜像的部分对于问题1,这里就需要用到深度/模版测...原创 2020-03-02 21:02:37 · 446 阅读 · 0 评论 -
DirectX11学习笔记七 雾化
雾化这一节本应该放在局部光照那里的后面。不过鉴于博客更新断了两个月,我觉得有必要跟着书动动手复习一下,雾化在原博客中没有提到,不过代码也非常简单,赶紧水一篇笔记。代码承接Blending的工程雾化我们可以将雾化计算简化成两个半圆,分为内径和外径,内径为雾开始距离,外径为雾结束距离,两者之差为雾范围,只有在fogRange内才会计算雾的效果。因此再定义一个float4:雾的颜色,只需要再...原创 2020-02-09 22:26:23 · 301 阅读 · 2 评论 -
DirectX11学习笔记六 Blending混合
阿萨德原创 2020-02-09 15:18:03 · 1631 阅读 · 0 评论 -
DirectX11学习笔记五 摄像机类
这一节跟渲染好像关系不大,但是值得看一看,以前用unity都是直接调的标准资源包里的摄像机类,很少从底层原理来考虑摄像机的实现方法。本节的demo里一共介绍了3种摄像机第一人称第三人称自由视角其中自由视角和第一人称差距不大。摄像机基类先放一个以前用过的unity的非官方的第一人称幽灵视角摄像机类。using System.Collections;using System.Co...原创 2019-11-28 19:09:04 · 1534 阅读 · 0 评论 -
DirectX11学习笔记四 纹理入门
unity中能创建的基本几何体有圆柱、正方体、球体、和胶囊体而在dx11学习源码中有球、立方体、圆柱体、圆锥体和平面,由Geometry.h定义,创建相应的顶点属性集合,并提交给DirectX渲染的API。因为我对创建几何体的算法原理更感兴趣,所以不打算去细挖语法细节。...原创 2019-11-20 20:59:22 · 1449 阅读 · 0 评论 -
DirectX11学习笔记三 局部光照入门
直接跳到第四了,因为鼠标键盘输入我暂时还没打算看,RawInput,DirectInput,XInput和Windows消息可以用的办法太多,技术又发展的太快,等后面学会了DX12时代的键盘输入再覆盖回来就好了。反正键鼠的控制万年不变,玩不出什么花样,所以不打算钻进去。 光照!感觉这是图形学里最难的地方之一了o(︶︿︶)o !看来这篇学习笔记要写很久,希望我能多搞清楚一些原理。...原创 2019-11-13 22:53:08 · 617 阅读 · 0 评论 -
DirectX11学习笔记二 渲染一个立方体
上一节画三角形只有三个顶点,所以直接按照三个顶点顺序画即可。不过那里漏过了一个细节,那就是你的三角形的顶点顺序,这里要引入一个叫“背面消除(backface culling)”的概念。因为三角形有两个面,假如你的正面是背对着摄像机,那摄像机就不会渲染你三角形的正面的图像(被剔除掉),复习一下上节所传入的三角形顶点。 // 设置三角形顶点 VertexPosColor vertices[] =...原创 2019-10-31 19:42:52 · 2208 阅读 · 0 评论 -
DirectX11学习笔记一 渲染一个三角形
这两个月我看了看数据可视化,又看了看OpenCV,草稿箱里的东西阅存越多,最后还是决定入坑计算机图形学了。因为本科的时候学过一点OpenGLES和计算机图形学原理,再加上自己对游戏开发感兴趣,所以不打算再继续跟老师的方向走了。本来选现在的老师是打算学学游戏服务器的,奈何失算了,o(︶︿︶)o 唉。 本学习笔记的原始素材来自龙书DirectX11,代码来自GitHub。 不打算照抄别人博...原创 2019-10-27 12:36:44 · 2776 阅读 · 2 评论