第八章 第二题 1.首先找到Directx Texture Tool,它位于 2.填入配置 3.用画图工具画好每个level的图片,例如level0 4.用Directx Texture Tool添加到dss中 5.依次添加level1… 6.加载到程序中查看效果,下图是Filter = MIN_MAG_MIP_POINT的情况.…
第八章 第三题 1.将flare.dds和flarealpha.dds拷贝到工程目录 2.创建shader resource view HR(D3DX11CreateShaderResourceViewFromFile(md3dDevice, L, , &mFlareSRV, )); HR(D3DX11CreateShaderResourceViewFromFile(md3dDevice, L, , &mFlareAlphaSRV, )); 3.在Basic.fx中添加纹理 Texture…
Direct3D 11简介 Direct3D 11是一个渲染库,用于在Windows平台上使用现代图形硬件编写高性能3D图形应用程序.Direct3D是一个windows底层库,因为它的应用程序编程接口(API)可以很好地非常接近于它控制的底层图形硬件.她最主要的客户是游戏行业,游戏需要建立在Direct3D上的更高级的渲染引擎来实现.但是,其他行业也需要高性能的交互式3D图形,例如医学和科学可视化以及建筑模拟.此外,每台新PC都配备了现代显卡,非3D应用程序开始利用GPU目的是将工作移植到显卡…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换在数学理论,以及如何遍历基于树结构的网格层级: 理解顶点混合的想法以及数学理论: 学习如何从文件加载动画数据: 学习如何在D3D中实现角色动画. 1 框架的层级结构 1.1 数学公式 例如,有下面的结构: 每根子骨骼的坐标系都可以跟父骨骼关联,第一根骨骼与世界坐标系关联: 如果矩阵A0是第一根骨骼的…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 熟悉环境光遮蔽的基本思路,以及通过光线跟踪的实现方法: 学习如何在屏幕坐标系下实现实时模拟的环境光遮蔽. 1 通过光线追踪实现的环境光遮蔽 其中一种估算点P遮蔽的方法是光线跟踪.我们随机跟踪点P半圆内的光线,然后查看和网格相交的光线.如果跟踪了N条光线,相交了h条,那么点P的遮蔽值为: 只有交点q…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 曲面细分阶段包含渲染管线中的三个阶段,用以细分几何物体,它在顶点着色器和几何着色器之间.使用曲面细分的主要原因: 基于GPU的LOD: 物理和动画的优化,可以在低面模型上计算物理效果和动画,然后细分为高面模型用以渲染: 节…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十三章:计算着色器(The Compute Shader) 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes GPU已经被优化为处理单个地址或者连续地址(流操作)的大量内存数据:这和CPU的随机内存访问形成鲜明对比.因为顶点和像素可以独立处理,所以GPU被架构为大量的并行运算:比如NVIDIA…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十一章:模板测试 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 模板缓冲(stencil buffer)状态是通过配置一个D3D12_DEPTH_STENCIL_DESC实例,并且赋值到PSO中的D3D12_GRAPHICS_PIPELINE_STATE_DESC::DepthStenci…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 学习如何定义将一个纹理映射到一个三角形上: 学习如何创建和启用纹理: 学习纹理如何被过滤后生产一个更加平滑的图像: 学习如何将一个纹理通过地址模式展开多次: 学习如何将多个纹理合并成一个新贴图和特殊效果: 学习一些基本的纹…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第八章:光照 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 理解基本的材质和光照之间交互方式: 熟悉局部光照和全局光照之间的不同: 学习如何用数学的方式描述平面上一个点的方向,以便于计算入射光和平面之间的夹角: 学习如何准确的变换法向量: 区分环境光,漫反射和高光: 学习如何实现点…