D3D Learning_01_CreateWindow】的更多相关文章

// Learn_01_CreateWindow.cpp : Defines the entry point for the application. // #include "stdafx.h" #include < windows.h> #include "resource.h" //------------------------------------------------------------------------------------…
1.区域视频增强 FFmpeg滤镜功能十分强大,用滤镜可以实现视频的区域增强功能. 用eq滤镜就可以实现亮度.对比度.饱和度等的常用视频增强功能. 推荐两篇写得不错的博文: (1)ffmpeg综合应用示例(二)——为直播流添加特效 - 张晖的专栏 - 博客频道 - CSDN.NET: (2)ffmpeg 滤镜及其效果 - 党玉涛 - 博客频道 - CSDN.NET 第(1)篇博客对于如何用代码来写滤镜讲得比较清楚,第(2)篇则列出了许多滤镜写法的例子. 参考第(1)篇博客,滤镜的代码如下: 设置…
简单记录一下这两天用Texture实现渲染YUV420P的一些要点. 在视频播放的过程中,有的时候解码出来的数据是YUV420P的.表面(surface)通过设置参数是可以渲染YUV420P的,但Texture纹理似乎不支持直接渲染YUV420P.表面(surface)用法似乎比较单一,通常用来显示数据,用Texture的话就可以用上D3D的许多其他功能,做出一些效果.当然,这看个人需求,通常而言显示视频数据用表面就够了. 1.利用像素着色器把YUV420P数据转为RGB32 视频播放过程中帧与…
一.D3D中的绘制 顶点缓存和索引缓存:IDirect3DVertexBuffer9 IDirect3DIndexBuffer 使用这两缓存而不是用数组来存储数据的原因是,缓存可以被放置在显存中,进行绘制时,使用显存中的数据将获得比使用系统内存中的数据快得多的绘制速度. 静态缓存(static buffer):一般放置在显存中,不需要进行修改,比如地形和城市建筑等.静态缓存必须在程序初始化时用几何体的数据进行填充. 动态缓存(dynamic buffer):一般放置在AGP存储区中,放置动态的内…
http://www.cppblog.com/lovedday/archive/2008/03/25/45334.html http://www.cppblog.com/lovedday/ D3D中的模板缓存(3) 8.3实例程序:平面阴影 在场景中被灯光照射的地方会产生阴影,这将使场景变的更真实.在这一部分我们将演示怎样实现平面阴影,即在平面上的阴影(如图8.5). 使用这种阴影只是一种权宜之计,虽然它增强了场景的真实效果,但是这并不是现实中的阴影. 为了实现平面阴影,我们首先必须找到物体投射…
一.对D3D中AGP显存.内存.显存三种内存的解释 三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡内存都很小,那时还是在显存是16M,32M为主流的时候,如果你运行一个需要很多纹理的3D程序,那么显存一会就不够用了,那该咋办呢?只好问系统内存借点用用了!这就是AGP内存的由来, 在我们电脑BIOS中有个设置AGP Aperture的选项,这里就是设置显卡可以使用系统内存的最大允许值,通常是设置为…
在使用D3D开发游戏的过程中,很多情况下都会用到depth buffer来完成特定的效果,比如DOF,Shadows,SSAO等等.在这些情况下我们就可能需要预览depth buffer来确定它是正确的,以免导致后续运算渲染出错.此时有一个问题就出现了,因为原始的depth buffer中保存的depth不是线性的.我们知道,世界坐标系下的顶点在经过视图变换后会被转换到视图空间,此时摄像机在原点,并且我们为摄像机定义了一个近平面和一个远平面: 在经过视图变换后,接着执行的就是投影变换,D3D的透…
我在学习D3D的深度测试和Alpha混合的时候,有一些遗憾.书上提供的例子里说一定要先渲染不透明物体,再渲染透明物体,对渲染状态的设置也有特殊要求.我看的很晕.自己查图形学的书,上网找资料,结果还是糊里糊涂.在和一个正在做游戏开发的大学同学的一点点的讨论中,我慢慢理解了深度测试和Alpha混合的关系,也就是为什么要那样设置渲染状态,为什么对渲染顺序有特殊要求. 在继续看之前,我推荐您看一下这个链接里的内容http://www.cnblogs.com/cocoaleaves/archive/200…
http://www.cnblogs.com/ixnehc/articles/1282350.html 先从最基础的写起吧,关于Device的渲染流程. D3D9的Device就是D3D给我们提供的一个绘制3D图形的工具,它的绘制流程大致是这样的:   *.首先Device的使用者要准备好顶点数据,也就是一个顶点的数组,称为A   *.然后这个数组A被传入device的渲染管线   *.device内部依次对每个顶点进行处理,有两种模式,固定管线和shader模式,所谓固定管线就是device内…
源代码下载 在PC机上,对于YUV格式的视频如YV12,YUY2等的显示方法,一般是采用DIRECTDRAW,使用显卡的OVERLAY表面显示.OVERLAY技术主要是为了解决在PC上播放VCD而在显卡上实现的一个基于硬件的技术.OVERLAY的出现,很好的解决了在PC上播放VCD所遇到的困难.早期PC处理能力有限,播放VCD时,不但要做视频解码工作,还需要做YUV到RGB的颜色空间转换,软件实现非常耗费资源,于是,YUV OVERLAY表面出现了,颜色空间转换被转移到显卡上去实现,显卡做这些工…
这篇文章里我准备向大家介绍下我封装的一个基础D3D库:DXLib.有了这样一个类库,可以减少很多无用功以及繁琐的工作,使我们的效率大大提高. DXLib.h #define DIRECTINPUT_VERSION 0x0800 #pragma warning(disable:4786) #pragma warning(disable:4244) #pragma warning(disable:4995) #pragma warning(disable:4996) #include <Window…
自己练习D3D 程序搭的小框架,记录在这里,将来看到好回顾自己独自摸索的苦逼样子. #pragma once #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib") #include<d3d9.h> #include<d3dx9.h> struct CUSTOMVERTEX { float x; float y; float z; float rhw; }; #defi…
D3DTEXTURESTAGESTATETYPE 纹理状态定义了一个多层次的复杂的操作质感.一些采样工作状态设置顶点,有些组像素操作. 纹理层次状态可以快速保存并返回状态. typedef enum D3DTEXTURESTAGESTATETYPE {  D3DTSS_COLOROP=1,  D3DTSS_COLORARG1=2,  D3DTSS_COLORARG2=3,  D3DTSS_ALPHAOP=4,  D3DTSS_ALPHAARG1=5,  D3DTSS_ALPHAARG2=6,  …
原帖地址:http://blog.csdn.net/popy007/article/details/4091967 上一篇文章中我们讨论了透视投影变换的原理,分析了OpenGL所使用的透视投影矩阵的生成方法.正如我们所说,不同的图形API因为左右手坐标系.行向量列向量矩阵以及变换范围等等的不同导致了矩阵的差异,可以有几十个不同的透视投影矩阵,但它们的原理大同小异.这次我们准备讨论一下Direct3D(以下简称D3D)的透视投影矩阵,主要出于以下几个目的: (1) 我们在写图形引擎的时候需要采用不…
D3D 符合基本程序 #pragma once #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib") #include<d3d9.h> #include<d3dx9.h> //TODO: -1 custom vertex struct CUSTOMVERTEX { float x; float y; float z; float rhw; }; #define D3D…
http://www.opengpu.org/forum.php?mod=viewthread&tid=40&highlight=Attila 查看: 7488|回复: 26    [Attila GPU] ATTILA GPU Streamer Unit (D3D Input Assambler) 结构分析 [复制链接]     octane3d 骑都尉(从五品) 注冊时间 2007-6-9 积分 408 串个门 加好友 打招呼 发消息 电梯直达 1#  发表于 2007-8-9 01:…
1.实现一个旋转的圆柱体,体现d3d光照效果 2.程序实现 #pragma once #pragma comment(lib,"winmm.lib") #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib") #include<d3d9.h> #include<d3dx9.h> //自己定义顶点格式 struct CUSTOMVERTEX { D3DX…
欢迎转载,转载请注明出处:http://blog.csdn.net/gnorth/article/details/9327971 说白了,也就是HOOK掉Present,这种代码,其实百度上某些地方有,但是很多人估计不知道怎样得到Present的地址. 所以就有些奇葩的例子: 先到游戏的登录器内把CreateProcess之类的HOOK掉,让游戏进程暂停启动,然后注入游戏 HOOK Direct3DCreate9 得到 IDirect3D9 对象之后,又得到 IDirect3DDevice9 对…
“我欢欣雀跃地打开<3D programming with Directx12>,准备接受D3D的洗礼,然后就卡在了 chapter 0 .”——Liez 100%纯小白的chapter 0(就是连第一章都没到的开头那个BoxApp示例= - =)错误总集. 错误一: 运行dxd12程序时出现HR failed问题 找到原因在于win10需要自行添加图形工具(Graphics Tool). 但是在我的win10系统中添加可选工具是一片空白,问题原因,[服务]中“windows update”被…
在UWP中加载文件一般先创建 StorageFile 对象,然后调用StorageFile.OpenReadAsync 方法得到一个IRandomAccessStream 接口用来读取数据: StorageFile image_file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/sample.jpg", UriKind.Absolute)); IRandomAccessSt…
原文:D3D中的texture应用示例 本文列举了Direct3D中各种纹理应用实现:黑暗贴图,发光贴图,漫反射映射贴图,细节纹理,纹理混合,有较详尽的注解.其中黑暗贴图,发光贴图,细节纹理都是采用多重纹理的方法实现(也可以采用多次渲染混合实现). 示例代码使用Beginning direct3D game programming中的框架,省去不少事情,可以专注纹理话题.代码:点此下载 下面来看代码与效果: 正常的纹理贴图效果: 正常的纹理贴图代码:  1//基本纹理 2void drawNor…
之前写过一套学习OpenGL的框架:WhyGL,即然有了GL那也应该再写个学习D3D的框架:WhyDX9.两个程序的架构相同,然后这个程序是将D3D红龙那本书的DEMO翻写了一遍.先将可执行程序发一下,代码等整理后再发. 使用说明: WhyDX9演示程序平台.exeWhyDX9.exe都可以运行程序,不同之处在于,一个是基本的Windows窗体程序,一个是MFC的单文档界面程序. 主UI界面上,鼠标点击可以选择要运行的DEMO键盘的上下键也可以选择DEMO,PageUp和PageDown用于翻页…
HRESULT GetBackBuffer( [in]          UINT                iSwapChain, [in]          UINT               BackBuffer, [in]          D3DBACKBUFFER_TYPE Type, [out, retval] IDirect3DSurface9  **ppBackBuffer ); Parameters iSwapChain [in] Type: UINT An unsig…
源代码下载 转载地址:http://blog.csdn.net/dengzikun/article/details/5824874 源码地址:http://download.csdn.net/download/dengzikun/2909129 在PC机上,对于YUV格式的视频如YV12,YUY2等的显示方法,一般是采用DIRECTDRAW,使用显卡的OVERLAY表面显示.OVERLAY技术主要是为了解决在PC上播放VCD而在显卡上实现的一个基于硬件的技术.OVERLAY的出现,很好的解决了在…
原文:D3D深度测试和Alpha混合 1.       深度测试 a)         深度缓冲区:屏幕上每个像素点的深度信息的一块内存缓冲区.D3D通过比较当前绘制的像素点的深度和对应深度缓冲区的点的深度值来决定是否绘制当前像素. b)        D3DPRESENT_PARAMETERS. AutoDepthStencilFormat = D3DFMT_D16 表示深度值由16位二进制表示 开启深度测试:pDevice->SetRenderState( D3DRS_ZENABLE, TR…
1). 设置着色模式: SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT) //设置平面着色模式 SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD) //设置格劳德着色模式 2). 设置多边形填充模式: SetRenderState(D3DRS_FILLMODE, D3DFILL_POINT) //点填充模式,D3D在多边形的每个顶点绘制一个像素 SetRenderState(D3DRS_FILLMODE,…
实现目的: 目前大部分游戏通过Direct3D实现3D效果,通过挂钩相应函数,可以实现3D透视,屏幕挂字效果.而透视,屏蔽特定效果,设置透明在很多游戏(特别是FPS)中发挥着巨大的作用! 实现思路: [D3D] DirectX的功能都是以COM组件的形式提供的.在Direct3D中,主要通过采取以下操作来实现编程: 调用适当的函数获取接口指针: 调用接口的方法(成员函数)来完成所需功能: 用完接口后,调用Release方法进行“释放”,注意释放顺序应该和获取它们的顺序相反. D3D的实现流程:…
转载请注明出处http://www.cnblogs.com/CAION/p/3192111.html (程序运行时是和其他程序挺像 = =,但我保证这是原创的) 1.将D3D的初始化,渲染等等一些行为封装为图形(Graph)类 代码如下(这里使用绘制旋转的茶壶作为例子),头文件 #pragma once #include <d3d9.h> #include <d3dx9.h> class Graphi { public: Graphi(void); ~Graphi(void); b…
初学Direct X(10) -- D3D基础预备知识 1. 像素格式 D3DFMT_X8R8G8B8(F) X:未加使用 8:8位用于显示 B:用于显示蓝色 F:浮点像素类型 以下三个较为常用,使用其他之前务必验证显卡是否支持 D3DFMT_R8G8B8 D3DFMT_X8R8G8B8 D3DFMT_A8R8G8B8 2. 内存池 定义资源缓存的存储位置 可默认宏为:D3DPOOL_DEFAULT 3. 深度缓存 是只含有特定像素的深度信息而不含图像数据的表面,可用于判断物体的前后显示 D3D…
作者:游蓝海(http://blog.csdn.net/you_lan_hai) DirectX 3D与OpenGL坐标系统的差异性,给我们带来非常大的麻烦.让跨平台编程的新手非常困惑.近期在做一个跨平台的游戏,细致看了下两者的矩阵.发现并没有什么大差别,将d3d左手系的矩阵传递给opengl shader全然能够正常工作. 先说一下两者一些概念上的差别:         (1)坐标系统不同 d3d左手坐标系,opengl右手坐标系         (2)矩阵行序不同 d3d行优先,opengl…