dx11 入门篇 Tutorial 01: 基本要素的创建 DirectXSampleBrowser(June 2010)

目标:这几天迅速入门dx11

第一讲主要是基本要素的创建:device 、context、view、swap;

笔记:

1.In Direct3D 10, the device object was used to perform both rendering and resource creation. In Direct3D 11, the immediate context is used by the application to perform rendering onto a buffer, and the device contains methods to create resources.

是说:图形两大块: 资源的创建和渲染;dx11前直接device实现,现在context渲染模块render buffer ,device管理资源的创建。

2.The front buffer is what is being presented currently to the user. This buffer is read-only and cannot be modified. The back buffer is the render target to which the device will draw. Once it finishes the drawing operation, the swap chain will present the backbuffer by swapping the two buffers. The back buffer becomes the front buffer, and vice versa.

前后buffer: front buffer只读,用于显示给我们, back buffer用于render,是我们实际绘制的内容;当完成一次绘制操作,swap chain 会进行front和back的切换

3.A resource view allows a resource to be bound to the graphics pipeline at a specific stage.We need to create a render target view because we would like to bind the back buffer of our swap chain as a render target.

RenderTargetView 关联资源的创建和与backBuffer的绑定:

	// Create a render target view
	ID3D11Texture2D* pBackBuffer = NULL;
	hr = g_pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer );//swapChian获取backBuffer,
	if( FAILED( hr ) )
		return hr;
	hr = g_pd3dDevice->CreateRenderTargetView( pBackBuffer, NULL, &g_pRenderTargetView );//Device 创建资源,并与backBuffer绑定
	pBackBuffer->Release();
	if( FAILED( hr ) )
		return hr;
	g_pImmediateContext->OMSetRenderTargets( 1, &g_pRenderTargetView, NULL );//context设置渲染:backBuffer的内容

4.The viewport maps clip space coordinates, where X and Y range from -1 to 1 and Z ranges from 0 to 1,we set the top left point to (0, 0) and width and height to be identical to the render target‘s size.

视口坐标系下,XY原点位于左上角。  Z的范围为0到1

总结下流程:

1.创建 device、context、swapChain

2.swapChain获取一个backBuffer、device创建renderTargetView并绑定buffer,context设置渲染目标,

3.viewport的创建

4.修改window响应方式为监听但不阻塞;同时在非阻塞时候进行图形render

5.render()

时间: 2024-11-09 01:22:52

dx11 入门篇 Tutorial 01: 基本要素的创建 DirectXSampleBrowser(June 2010)的相关文章

dx11 入门 Tutorial 05: DepthBuffer的创建 DirectXSampleBrowser(June 2010)

本课主要是矩阵变换和DepthBuffer的创建: 笔记:关于depthBuffer 问题:1.depthBuffer的作用? 2.怎么创建? 作用:我想到的:1.depthTest,保证遮挡,同一个pixel中z值小的渲染:  2.三维世界,需要z值来表示近大远小  3.dx中值在1到0之间 MSDN的解释:1.depthBuffer存储每个pixel的z值,也可以存储stencil值,常用32bit,24bit用于depth数据 8bit用于stencil数据 2.当一个pixel渲染后,里

dx11 入门 Tutorial 06: 明白context->updateSubsource和setConstantBuffers DirectXSampleBrowser(June 2010)

需要明白constantBuffer传入数据到shader的正确使用:: cb1.vOutputColor = XMFLOAT4(0, 0, 0, 0); g_pImmediateContext->UpdateSubresource( g_pConstantBuffer, 0, NULL, &cb1, 0, 0 ); //更新cube的数据 // // Render the cube // g_pImmediateContext->VSSetShader( g_pVertexShade

dx11 入门 Tutorial 02: 数据传入GPU的设置 和绘制一个三角形 DirectXSampleBrowser(June 2010)

烦...一年前看过教程,但全忘掉了,这一年我都干什么了... 教程2遇到的两个error: error 1:ID3DBlob调用不成功 ,是重复调用版本冲突的原因?ID3DBlob在D3DCommon.h中, 因为window include里和SDK里各有一份,造成了冲突,修改头文件的调用,先调用SDK内的即可.参考:http://www.cnblogs.com/Wilson-Loo/archive/2013/01/20/2797902.html 那为什么先后顺序就解决问题呢> error 2

dx11 入门 Tutorial 03: 什么是shader DirectXSampleBrowser(June 2010)

对shader的认知: shader是什么? In Direct3D 11, shaders reside in different stages of the graphics pipeline. They are short programs that, executed by the GPU, take certain input data, process that data, and then output the result to the next stage of the pip

dx11 入门 Tutorial 04: DX、HLSL中矩阵的内存存储和数学计算方式 DirectXSampleBrowser(June 2010)

主要是两方面: 1.shader数据和dx的通信,使用constant Buffer 2.矩阵的数学计算方式和内存存储方式再DX和HLSL中的异同 先说第一个: dx中的常量数据matrix等传入shader中流程: The first thing that we need to do is declare three constant buffer variables. Constant buffers are used to store data that the application n

Swift入门篇-字符串和字符

今天主要是介绍一下字符串的用法 ,字符串的语法和object-c语法不太一样,但是思想是一样,就是写法不太一样.如果您对.net和java语法比较熟悉的话,那您几乎没有深压力.如果您对swift 基本类型不是清楚,请查阅. Swift入门篇-基本类型(1) Swift入门篇-基本类型(2) Swift入门篇-基本类型(3) 一:创建空字符串 //-------------定义一个空字符串第一种方法 var str1="" //-------------定义一个空字符串第二种方法 var

Farseer.net轻量级开源框架 入门篇:逻辑层的选择

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 入门篇:增.删.改.查操作演示 下一篇:Farseer.net轻量级开源框架 入门篇: 实体类 当我们创建了一个实体类后,就需要继承其中一个基类:BaseModel.BaseCacheModel.BaseCateModel.只有继承了这三个基类的其中一个时,框架才能对实体建立数据库关系映射(也就是ORM).并且实现了对数据库的CURD的操作. 本框架与其它一些框架不同之处在于,对

[JavaEE] Apache Maven 入门篇(上)

http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html 作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法. 这个入门篇分上下两篇.本文着重动手,用 maven 来构建运行 hellow world 程序,体会一下不用任何 IDE ,只用 maven 是咋回

【SSRS】入门篇(一) -- 创建SSRS项目

在本篇中,您将学习如何在 SQL Server Data Tools (SSDT) 中创建报表服务器项目. 报表服务器项目用于创建在报表服务器中运行的报表. 1.单击“开始 --> 所有程序 --> Microsoft SQL Server 2012 ,然后单击“SQL Server Data Tools”: 打开SQL Data Tools的界面如下: 2.在“文件”菜单上,指向“新建”,然后单击“项目”. 3.选择"商业智能 -->Reporting Services --