DirectX11学习笔记三:绘图基础

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
 DirectX的一大特色之一便是Shader渲染,包括顶点Shader渲染以及像素Shader渲染。设置Shader机制是为了使程
序员能够控制GPU绘制顶点或像素的方式,简单的说,我们设计的Shader代码是运行在GPU硬件中的,这样提高了渲
染效率。上篇幅简要简绍了下DirectX管线渲染的基本步骤,本篇幅从绘制基本的正方体开始详细描述绘制过程。

 

1,Vertex Shader

    struct VertexIn  
    {  
        float3  pos     : POSITION;  
        float4  color   : COLOR;  
    };  

    Vertex Shader是对模型的每一个顶点进行操作加工的代码,所以输入输出自然都是一个顶点结构数据。

    上图的float3和float4是HLSL内置类型。

   级着色器语言(High Level Shader Language,简称HLSL),由微软拥有及开发的一种语言,HLSL 独立的工作在 Windows 平台上,只能供微软的Direct3D使用。 HLSL是微软抗衡GLSL的产品,同时不能与OpenGL标准兼容。他跟Nvidia的Cg非常相似。 HLSL的主要作用为将一些复杂的图像处理,快速而又有效率地在显示卡上完成,与组合式或低阶Shader Language相比,能降低在编写复杂特殊效果时所发生编程错误的机会。 HLSL已经整合到了 DirectX 9中。

   HLSL我会在后面专门写一篇笔记学习

    POSITION和COLOR分别对应顶点的坐标以及颜色向量,这两个声明是在C++语言中设置输入布局InputLayout内容设定的

   

    struct VertexOut  
    {  
       float4 posH : SV_POSITION;  
       float4 color : COLOR;  
    };  

    SV_POSITION是默认固定的系统值,不得改变,其他可以为 任意设定值,因为顶点输出需要内存对齐,所以输出的顶点是经过矩阵计算后得出的float4格式的值,一般为(x,y,z,w)w表示其缩放值,一般为1.

   

DirectX11学习02】绘制单个基本几何体的线框 注:下面涉及的代码都基于这篇文章的内容  https://blog.csdn.net/Kurozaki_Kun/article/details/86709050 绘制过程 要在DX上绘制一个基本图形,大体流程有以下几步 给出输入布局(主要是描述顶点的格式) 给出描述几何体的顶点,索引,拓扑图元 加载并创建各种着色器 创建索引缓冲,顶点缓冲,以及必要的常量缓冲 将以上内容绑定到渲染管... 阅读详情

相关推荐

Directx11 HelloWorld之简单角形绘制

  学习Directx11进行简单的角形绘制,以此熟悉Direct11的绘制流程。此文参考上一篇

算法,时空数据挖掘 3725

WPF 使用 SharpDx 画图 1.1

如果只是使用 SharpDX 使用窗口渲染,就无法使用其它的 WPF 控件,实际使用经常只是使用 SharpDX 加快一些渲染,很多元素都是不需要 这是一个例子告诉大家如何使用

DirectX11入门教程——第二篇:DirectX11基础知识

本系列系作者原创,可随便转发但一定要注明出处 刚才明明说尽量不跳章的,为啥一进来就变成第二章,这里首先用几句话说明一下原因:因为第一章我想留给更基础更概念的GPU发展史和管线描述。在此对不起大家了。不过我保证这个系列初步成型后绝对不跳章 2010年5月微软发布了DirectX11这个DirectX SDK系列家族的最新成员,伴随着SDK的升级,DirectX11带给我的是功能的扩展,性能的

hiroshiryu的专栏 7161

directx绘制流水线&绘制简单图形

简单介绍directx9.0绘制流水线&绘制简单图形

Direct3D 11 总结 —— 5 绘制矩形

介绍 本文,将在上文的基础上,绘制矩形区域。一般 direct3D 通过绘制角形,拼成其他图像,对于矩形,本文将绘制两个角形,以拼成一个矩形。 代码 主要修改点 输入装配阶段 一个是输入的坐标点数,之前是3个点,本文输入的 4个点。 绘制2个角形,有两种方式,一种是输入6个点,其中有2对点是一样的。 另外一种方式是输入4个点,在加上6个索引点。 绘制命令 针对两种输入方式,有两个对应的绘制命令。 m_pContext->Draw(6, 0); 通过输入顶点绘制6个点绘制图形 m_pContex

dss875914213的博客 1825

【Visual C++】游戏开发笔记二十九 一步一步教你用优雅的Direct3D11代码画一个角形...

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7774929 作者:毛星云 邮箱: happylifemxy@qq.com 这个demo演示的效果是用Direct3D11在屏幕上渲染一个角形,当然是通过这个demo进一步巩固和学习Direct3D11,而不是单单为了画一...

duoerbasilu 396

DirectX11 Effects

Effects 1. 什么是Effects? effect框架是一组用于管理着色器程序和渲染状态的工具代码。例如,你可能会使用不同的effect绘制水、云、金属物体和动画角色。每个effect至少要由一个顶点着色器、一个像素着色器和渲染状态组成。在Direct3D 11中,effects框架已从D3DX库中移除,你必须包含一个单独的头文件(d3dx11Effect.h),链接一个单独的库文件(D

梦幻DUO的游戏开发之路 2559

DirectX 11游戏编程学习笔记之1: 开场白

本文由哈利_蜘蛛侠原创,转载请注明出处!有问题欢迎联系2024958085@qq.com           这是我之前的博客系列“DirectX9.0c游戏开发手记之‘龙书’第二版学习笔记”的平行版,也可以说是续集。说是平行版,因为这两个博客系列因为某种显而易见的原因,内容是很平行的;而之所以说是续集,是因为前面那个系列可能就此坑掉了……         前面那个系列是关于“龙书”第二版的

哈利_蜘蛛侠的专栏 4485

DirectX11学习笔记一 渲染一个角形

  这两个月我看了看数据可视化,又看了看OpenCV,草稿箱里的东西阅存越多,最后还是决定入坑计算机图形学了。因为本科的时候学过一点OpenGLES和计算机图形学原理,再加上自己对游戏开发感兴趣,所以不打算再继续跟老师的方向走了。本来选现在的老师是打算学学游戏服务器的,奈何失算了,o(︶︿︶)o 唉。   本学习笔记的原始素材来自龙书DirectX11,代码来自GitHub。   不打算照抄别人博...

MaxLykoS的博客 3550

DirectX11学习笔记二 渲染一个立方体

上一节画角形只有个顶点,所以直接按照个顶点顺序画即可。不过那里漏过了一个细节,那就是你的角形的顶点顺序,这里要引入一个叫“背面消除(backface culling)”的概念。因为角形有两个面,假如你的正面是背对着摄像机,那摄像机就不会渲染你角形的正面的图像(被剔除掉),复习一下上节所传入的角形顶点。 // 设置角形顶点 VertexPosColor vertices[] = ...

MaxLykoS的博客 2566

Directx11 HelloWorld之与Directx9的比较

这些天终于受不了诱惑,决定入手Directx11。看个HelloWord的程序。  先看看整体框架:所有函数的声明。可以看到和D3d9c差不多,都是初始化窗口,创建设备,清理设备,消息循环和渲染。下面我们将看到发生变化的主要是创建设备的InitDevice()函数,其他都是些MFC框架。  HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow );   HRESULT InitDevice();  void CleanupDevice();  LRESU

算法,时空数据挖掘 3881

DirectX学习笔记--索引缓存绘图

引言: 顶点缓存绘制图形,虽然比较简单,但是简单的图形还好。一个角形,个点。但是,比如我们要绘制一个立方体,需要6*2=12个角形,总共要36个顶点,而实际上表示一个立方体只需要8个顶点就可以了。显然再使用顶点缓存绘图有些划不来,所以就有了索引缓存绘图。 定义: 索引缓存保存的就是一些索引,用于记录顶点缓存中每一个顶点的索引位置。这样,我们在定义顶点的时候,就不需要重复定义那些

puppet_master的专栏 3195

DirectX11 With Windows SDK--00 目录

DirectX11–使用Windows SDK来进行开发 在看龙书(Introduction to 3D Game Programming with Directx 11)的时候,里面所使用的开发工具包为Microsoft DirectX SDK(June 2010),该开发包到现在也已经经历了8年左右。而现在,微软其实已经将DX的相关组件随同Windows SDK一同更新,并不再对Direct...

X_Jun的博客 1万+

DirectX11DirectX11下载和环境配置

前言: VS2013下DirectX11的配置。 配置步骤: 1.安装DirectX SDK 2.配置.h 和.lib文件路径 3.在VS中链接.lib文件。 一、下载DirectX SDK(DX11) 点击打开链接  密码:o0sq 下载后安装即可。 二、配置.h 和.lib文件路径: 在安装好之后,打开VS2013

lishuzhai的专栏 1万+

DirectX 11 编程指南

微软在2009年8月的DirectXSDK中发布了DirectX的正式版本。基于对DirectX的一贯兴趣,我把DirectX Graphics的文档边看边译为中文。也算是一份学习笔记吧。 众所周知,Direct3D是在Windows平台上开发实时3D应用的软件开发接口。随着Windows操作系统的升级,Direct3D的版本也随着升级。WindowsXP对应Direct3D9的各个版本,V

痞子龙3D编程 9745

DirectX11学习笔记四 纹理入门

unity中能创建的基本几何体有圆柱、正方体、球体、和胶囊体 而在dx11学习源码中有球、立方体、圆柱体、圆锥体和平面,由Geometry.h定义,创建相应的顶点属性集合,并提交给DirectX渲染的API。 因为我对创建几何体的算法原理更感兴趣,所以不打算去细挖语法细节。 ...

MaxLykoS的博客 1921

【Visual C++】游戏开发笔记二十六 DirectX 11各组件的介绍&第一个DirectX 11 Demo的创建

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。http://blog.csdn.net/zhmxy555/article/details/7688515作者:毛星云    邮箱: happylifemxy@163.com   这节笔记主要讨论DirectX 11现有的组件构成,随着DirectX各个版本的更新被时代抛弃的一些组件以及第一个围绕着DirectX 11 的Demo创建全过

【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 3万+

DirectX 11和‌DirectX 12的区别是什么?DirectX 修复方法及工具介绍

系统更新确保 Windows 操作系统处于最新状态,因为系统更新可能包含对 DirectX 相关问题的修复和改进。重新安装 DirectX 运行时库您可以从微软官方网站下载最新版本的 DirectX 运行时库进行安装。检查显卡驱动程序过时或不兼容的显卡驱动可能导致 DirectX 问题。访问显卡制造商的官方网站,下载并安装最新的驱动程序。常用工具:DirectX 修复工具。这是一款专门用于修复 DirectX 相关问题的工具。

Cybertronnnnnn的博客 6153
上一篇: DirectX11学习笔记二:DirectX管线渲染过程
下一篇: VS2010 C++ 项目编译常见问题搜集----error C2143: syntax error : missing ';' before '*'
iceguner
博客等级 码龄15年 2粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值