随笔分类 - D3D
摘要:首先用一张图来回顾一下渲染管线的各个阶段,目前为止我们接触的着色器有顶点着色器和像素着色器,而接触到的渲染管线阶段有:输入装配阶段、顶点着色阶段、光栅化阶段、像素着色阶段、输出合并阶段.: 可以看到,几何着色器是我们在将顶点送入光栅化阶段之前,可以操作顶点的最后一个阶段。它同样也允许我们编写自己的着
阅读全文
摘要:原作者邮箱 BoYueGame#Gmail#com 欢迎交流。 此贴可以随意转载而不用注名出处。但也别说是你写的就行。 在读此文之前,读者应该知道什么是行主,列主矩阵,写过简单的HLSL或者ASM SHADER 读者知道简单的矩阵运算规则 本文主要内容有: 一、部分背景内容 二、HLSL中的row-
阅读全文
摘要:阅读目录 前言 一些线性代数基础 行主序矩阵与列主序矩阵 矩阵左乘与右乘 C++和HLSL中矩阵的内存布局 HLSL中的mul函数 dp4指令 总结 回到顶部 前言 说实话,我感觉这是一个大坑,不知道为什么要设计成这样混乱的形式。 (2020年4月12日更新)过了几年回头看这篇博客,连我自己都看的头
阅读全文
摘要:一、ASTC纹理压缩格式介绍 ASTC是在OpenGL ES3.0出现后在2012年中产生的一种业界领先的纹理压缩格式,它的压缩分块从4x4到12x12最终可以压缩到每个像素占用1bit以下,压缩比例有多种可选。ASTC格式支持RGBA,且适用于2的幂次方长宽等比尺寸和无尺寸要求的NPOT(非2的幂
阅读全文
摘要:本文系原创整理,欢迎转载,请标明链接 http://www.cnblogs.com/luming1979 有问题欢迎加qq群讨论:366239605 介绍了各种移动设备所使用的GPU,以及各个GPU所支持的压缩纹理的格式和使用方法。1. 移动GPU大全目前移动市场的GPU主要有四大厂商系列:1)Im
阅读全文
摘要:采样状态对象 1. 采用状态对象有什么用? 采样状态描述用于描述纹理贴图的采样方式。一个采样状态对象允许我们访问一个纹理的采样状态信息。后面我们看采样状态描述结构体就知道有哪些内容可以描述了。 2. 采样状态可以描述哪些内容? 我们来看采样状态描述结构体D3D11_SAMPLER_DESC有哪些成员
阅读全文
摘要:作者:文刀秋二链接:https://www.zhihu.com/question/20236638/answer/44821615来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先所有MSAA, SSAA, FXAA, TXAA等都是抗锯齿(Anti-Aliasin
阅读全文
摘要:MSAA的原理 Aliasing(走样) 在介绍MSAA原理之前,我们先对走样(Aliasing)做个简单介绍。在信号处理以及相关领域中,走样(混叠)在对不同的信号进行采样时,导致得出的信号相同的现象。它也可以指信号从采样点重新信号导致的跟原始信号不匹配的瑕疵。它分为时间走样(比如数字音乐、以及在电
阅读全文
摘要:阅读目录 前言 先从Effects11(FX11)谈起 Pass、Technique11、Group 渲染状态、采样器状态 常量缓冲区 隐藏指定寄存器槽的问题 常量缓冲区的更新 默认常量缓冲区(Default Constant Buffer) 着色器反射 D3DReflect函数--获取着色器反射对
阅读全文
摘要:1、原理 阴影实时渲染是计算机图形学的高级技术。它能提高场景的真实感。两种通用的阴影渲染技术分别是地图阴影(shadow map)和体积阴影(shadow volumes)。地图阴影的优势在于效率很高,因为地图阴影只需要渲染场景两次(一般来说)。并且不需要进行几何处理和产生额外的mesh。无论多复杂
阅读全文
摘要:在Shader中会使用各种不同图参与渲染,所以简单地总结下各种图的渲染原理、制作方法,最后面几种是程序生成图。 1. Albedo 2. Diffuse(Photographic) <img data-rawwidth="731" data-rawheight="518" src="https://
阅读全文
摘要:为了加快渲染速度和减少纹理锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap。 使用DirectX Texture Tool(DX自带工具)预生成Mipmap Chain Original Mip1 Mip2 Mip3 Mip4 Mip5 Mip6 Mip7
阅读全文
摘要:而MSAA基本上只对画面中物体的边缘进行放大、混合的抗锯操作,因为边缘是锯齿最明显的地方(注意不是所有的边缘)。提取边缘,主要是结合深度技术。MSAA是种硬件AA。我们一般说的4x、8x,就是放大倍数,放得越大,供混合的采样越充份,效果越好,但是处理速度也就越慢。FXAA也是种取边缘的技术。但是和M
阅读全文
摘要:什么是HDR? 谈论游戏画面时常说的HDR到底是什么呢?HDR,本身是High-Dynamic Range(高动态范围)的缩写,这本来是一个CG概念。HDR的含义,简单说,就是超越普通的光照的颜色和强度的光照。计算机在表示图象的时候是用8bit(256)级或16bit(65536)级来区分图象的亮度
阅读全文
摘要:Bloom,又称“全屏泛光”,是大名鼎鼎的虚幻3游戏引擎中最通用的后期特效技术~ Bloom特效的实现主要依赖于PostProcess框架,即实时绘制当前场景到一后台渲染表面,而后针对其对应贴图进行像素级渲染~ 大家还记得我们之前实现的水面效果中的反射和折射贴图吗?此即为PostProcess的典型
阅读全文
摘要:为了便于说明,首先假设存在下列的顶点缓冲和索引缓冲vb={{-1.0, 1.0, 0.0},index 0{ 1.0, 1.0, 0.0},index 1{ 1.0,-1.0, 0.0},index 2{-1.0,-1.0, 0.0},index 3 {-2.0, 2.0, 0.0},index4{ 2.0, 2.0, 0.0},index 5}和对应该顶点缓冲的一组索引缓冲ib初学D3D,DrawIndexedPrimitive这个函数是个难点,主要是MSDN中的解释不是很明确,这个函数共6个参数,下面对这6个参数进行一下详细的解释。参数1:D3DPRIMITIVETYPE type-图元类
阅读全文
摘要:我的观点基于以下几点:若显卡不支持非2的次幂纹理,则:1:若使用IDirect3DDevice9::CreateTexture创建非2的次幂尺寸图像将失败2:若使用D3DXCreateTexture创建非2的次幂图像将被扩充成2的次幂3:若使用D3DXCreateTextureFromFileInMemoryEx创建非2的次幂图像将被扩充成2的次幂(就算用了D3DX_DEFAULT_NONPOW2也没用)只有一个函数比较特殊:D3DXCreateTextureFromFileEx,用它创建图像可以完美支持非2的次幂图像,但实际游戏中很少用这个函数,故总体上,创建一个非2的次幂纹理,还是显卡说了
阅读全文
摘要:一 今天碰到一个问题,UI有个界面模糊,其他界面正常,原因是:美术给的图片非2的N次方,而用D3DXCreateTextureFromFileEx创建纹理时,大小设置的是D3DX_DEFAULT,这样D3D默认会把问了创建为2的N次方,也就是会放大纹理。但是使用时又会按原始大小使用,相当于又把创建的纹理缩小,导致模糊的产生二 修改方式1 D3DXCreateTextureFromFileEx使用D3DX_DEFAULT_NONPOW2设置大小2 美术修改图片到2的N次方大小三 其他1 D3DX_DEFAULT_NONPOW2有些显卡可能不支持,需要检测设备能力2 D3DX_DEFAULT_NO
阅读全文
摘要:全局光源•一些影响整个场景的元素,比如太阳光和雾•需要在整个屏幕上进行计算•顶点坐标,法线,颜色以及材质的参数均以纹理的形式输入。•光照计算在象素着色器中实现。•计算输出先储存在一个中间的光照缓冲中。局部光源•局部光源的光照效果只影响到整个场景的一部分•我们只计算受相关光源影响的象素。•这需要将光源体投影到屏幕空间•利用GPU很容易对象素按光源进行分类。•在场景构造时,我们建立一个简单的网格来表示光源影响的空间区域,在游戏运行时,在3D空间中对这个网格包围的象素进行光照计算。以下是延迟光照的关键部分,水平有限,如有错误还请谅解。延迟光照的关键点之一,如何找到光照体积网格中的象素。首先渲染光源体
阅读全文