03 2012 档案

Directx11教程(21) 修正程序最小化异常bug
摘要:很长时间竟然没有注意到,窗口最小化时候,程序会异常,今天调试水面程序时,随意间最小化了窗口,发现程序异常了。经过调试,原来程序最小化时候,屏幕的高度和宽度为0,此时创建深度缓冲会fail,所以在D3DClass.cpp的初始化函数中加入以下的代码,可以防止最小化时候程序异常。 D3DClass.cpp增加代码: //Initialize函数包含完成D3D设置的所有代码。 ... 阅读全文

posted @ 2012-03-26 21:16 迈克老狼2012 阅读(1567) 评论(1) 推荐(0) 编辑

Directx11教程(29) 简单的光照模型(8)
摘要:现在我们新建一个工程myTutorialD3D_23,在这个工程中,对前面一章的代码进行一些整理: 1、我们在顶点属性中增加材质的的漫反射系数和高光系数,前面我们放在一个光照材质结构中,这样我们能够比较灵活的定义不同顶点的材质属性,当然这也增加了顶点缓冲的大小。 struct VertexType { D3DXVECTOR3 position... 阅读全文

posted @ 2012-03-26 20:56 迈克老狼2012 阅读(2058) 评论(0) 推荐(1) 编辑

Directx11教程(19) 画一个简单的地形
摘要:通常我们在xz平面定义一个二维的网格,然后y的值根据一定的函数计算得到,比如正弦、余弦函数的组合等等,可以得到一个看似不错的地形或者水面的效果。 在本教程中我们修改ModelClass.h和ModelClass.cpp,得到一个近似的地形。 在本章代码中,我们定义300*300=90000个顶点,共(300-1)(300-1)*2个三角形,每个网格的大小都为1. ... 阅读全文

posted @ 2012-03-25 11:00 迈克老狼2012 阅读(4869) 评论(2) 推荐(1) 编辑

Directx11教程(18) D3D11管线(7)
摘要:光栅化阶段(RS)之后,将进入PS/OM阶段。 参考外文资料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-7/ 大致的管线流程应该是这样的: RS光栅化的fragment达到64或者32(一个wave或者warp)后,PS调度模块会产生一个新的wa... 阅读全文

posted @ 2012-03-25 08:39 迈克老狼2012 阅读(2839) 评论(0) 推荐(0) 编辑

Directx11教程(17) D3D11管线(6)
摘要:VS shader输出clip空间的顶点位置及参数信息(比如颜色)到一个FIFO中,之后PA(primitive assembly)会从该FIFO中取得顶点位置信息,并根据IA传来的primitive信息,把单独的顶点装配成点、线或者三角形。经过PA阶段后,我们不再是处理单个顶点,而是处理整个体元。 参考资料:http://fgiesen.wordpress.com/2011/07/... 阅读全文

posted @ 2012-03-24 21:42 迈克老狼2012 阅读(2686) 评论(0) 推荐(0) 编辑

Directx11教程(16) D3D11管线(5)
摘要:本章我们学习VS中具体做些什么事情? 首先再看看我们的VS shader代码: Clolor.vs … PixelInputType ColorVertexShader(VertexInputType input) { PixelInputType output; // Change the position vector... 阅读全文

posted @ 2012-03-24 09:57 迈克老狼2012 阅读(3215) 评论(0) 推荐(3) 编辑

Directx11教程(15) D3D11管线(4)
摘要:本章我们首先了解一下D3D11中的逻辑管线,认识一下管线中每个stage的含义。 参考资料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-3/ D3D11逻辑管线如下图所示: 首先,我们来学习一下每个stage的名字含义,在后面章节学习它们的细节功能... 阅读全文

posted @ 2012-03-24 08:50 迈克老狼2012 阅读(5119) 评论(0) 推荐(2) 编辑

Directx11教程(14) D3D11管线(3)
摘要:现在我们开始学习一些CP(command processor)的知识。参考资料: http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-3/ CP(command processor)应该是GPU最前端的block,它从位于video memory中的... 阅读全文

posted @ 2012-03-21 19:37 迈克老狼2012 阅读(3300) 评论(0) 推荐(2) 编辑

Directx11教程(13) D3D11管线(1)
摘要:从本篇教程开始,我们暂停代码的学习,先来了解一下D3D11的管线,这些管线不涉及具体的硬件,而是着重于理解能够支持D3D11的管线实现。 参考资料: http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-1/ 通过前面的教程,我们知道,要用D3D11... 阅读全文

posted @ 2012-03-20 19:20 迈克老狼2012 阅读(5957) 评论(0) 推荐(0) 编辑

PCIE扫盲贴
摘要:转帖:http://www.liusuping.com/it-tech/pci-e-pci-express-jieshao.html 什么是PCI Express PCI-Express是当前主流的总线和接口标准,它原来的名称为“3GIO”,是由Intel提出的,很明显Intel的意思是它代表着下一代I/O接口标准。交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Expre... 阅读全文

posted @ 2012-03-20 19:13 迈克老狼2012 阅读(3697) 评论(0) 推荐(0) 编辑

Directx11教程(12) 禁止alt+enter全屏窗口
摘要:在D3D11应用程序中,我们按下alt+enter键,会切换到全屏模式。有时候,我们在WM_SIZE中有一些代码,全屏时,会使得程序崩溃,比如之前教程的代码,就是如此。 下面我们在D3DClass.cpp 中,增加代码,禁止alt+enter键全屏。有两种方法可以做到这个功能,下面我们分别贴出代码: 第一种方法: D3DClass.cpp中修改Initia... 阅读全文

posted @ 2012-03-19 21:11 迈克老狼2012 阅读(3015) 评论(0) 推荐(0) 编辑

Directx11教程(11) 增加一个debug宏
摘要:现在我们在common.h中增加一个debug的宏,在每个d3d11函数后调用,如果d3d函数出错,它能够给出程序中错误的代码行数。 common.h代码如下: #pragma once #include <d3d11.h> #include <d3dx10math.h> #if defined(DEBUG) || defined(_DEBUG) #if... 阅读全文

posted @ 2012-03-18 13:51 迈克老狼2012 阅读(1407) 评论(0) 推荐(0) 编辑

Directx11教程(10) 画一个简易坐标轴
摘要:本篇教程中,我们将在三维场景中,画一个简易的坐标轴,分别用红、绿、蓝三种颜色表示x,y,z轴的正向坐标轴。 为此,我们要先建立一个AxisModelClass类,来表示坐标轴顶点。 现在系统类之间的关系图如下: AxisModelClass类和前面的ModelClass类相似,只是创建顶点缓冲和索引缓冲时,指定了3条线段,表示三个坐标轴。 AxisModel... 阅读全文

posted @ 2012-03-18 12:45 迈克老狼2012 阅读(3101) 评论(0) 推荐(0) 编辑

Directx11教程(9) 增加一个TimerClass类
摘要:在上篇教程代码的基础上,我们增加一个TimerClass类,这个类的功能很简单,就是可以计算相邻2帧的时间差。利用这个时间差值,可以实现平滑的动画,使得动画不会因为不同机器fps不同,从而动画效果变快或者变慢。 我们主要是利用QueryPerformanceCounter函数来查询定时器的计数值。 如果硬件里有定时器,它会启动这个定时器,之后会不断获取定时器的值,这样... 阅读全文

posted @ 2012-03-12 20:26 迈克老狼2012 阅读(1635) 评论(0) 推荐(0) 编辑

Directx11教程(8) 一个新的camera类
摘要:本章我们将替换掉CameraClass类,实现一个稍微靠谱点的摄像机类。并通过Q,W,E,A,S,D,Z,X,C等按键实现摄像机的控制。 该类的主要功能就是根据指定的摄像机位置,up方向以及lookat方向,得到最终的视图矩阵,所谓视图矩阵就是把世界坐标系的顶点位置转化到视点(或者说摄像机)空间的矩阵。该类可以实现两种模式的摄像机操作,一类是AIRCRAFT摄像机,允许摄像机... 阅读全文

posted @ 2012-03-11 21:33 迈克老狼2012 阅读(5302) 评论(2) 推荐(2) 编辑

Ring buffers and queues
摘要:The data structure is extremely simple: a bounded FIFO. One step up from plain arrays, but still, it’s very basic stuff. And if you’re doing system programming, particularly anything involving IO or d... 阅读全文

posted @ 2012-03-11 14:58 迈克老狼2012 阅读(886) 评论(0) 推荐(0) 编辑

Z-order curve
摘要:http://en.wikipedia.org/wiki/Z-order_curve Z-order curve From Wikipedia, the free encyclopedia Jump to: navigation, search Not to be confused with Z curve or Z-order. Four iterations of the Z... 阅读全文

posted @ 2012-03-11 14:46 迈克老狼2012 阅读(2330) 评论(0) 推荐(0) 编辑

Texture tiling and swizzling
摘要:原帖地址:http://fgiesen.wordpress.com If you’re working with images in your program, you’re most likely using a regular 2D array layout to store image data. Which is to say, it’s basically a 1D array of ... 阅读全文

posted @ 2012-03-11 14:05 迈克老狼2012 阅读(2020) 评论(0) 推荐(1) 编辑

Directx11教程(7) 画一个颜色立方体
摘要:前面教程我们通过D3D11画了一个三角形,本章我们将画一个颜色立方体,它的立体感更强。主要的变动是ModelClass类,在ModelClass中定义一个立方体需要的顶点信息,然后创建顶点缓冲和索引缓冲。 在ModelClass.h中,我们定义一些宏来表示颜色,以便后面给顶点颜色属性赋值时用。 ModelClass.h代码如下: #pragma once #inc... 阅读全文

posted @ 2012-03-11 13:29 迈克老狼2012 阅读(2835) 评论(1) 推荐(0) 编辑

Directx11教程(6) 画一个简单的三角形(2)
摘要:在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变,如下图所示: 这是因为我们改变了窗口大小,但后缓冲大小在程序初始化时候,已经被指定,不随着窗口改变而改变,这样在视口映射下,我们所渲染的三角形就改变了形状。 下面我们将对程序进行一些小的改动,从而实现改变窗口大小,而渲染的图形... 阅读全文

posted @ 2012-03-11 13:11 迈克老狼2012 阅读(2498) 评论(1) 推荐(0) 编辑

Directx11教程(5) 画一个简单的三角形(1)
摘要:在本篇教程中,我们将通过D3D11画一个简单的三角形。在D3D11中,GPU的渲染主要通过shader来操作(当然还有一些操作是由GPU固定管线完成,比如光栅化操作),最常用的shader操作是顶点shader(vertex shader)和像素shader(pixel shader)。其实shader就是在GPU中执行的代码,这些代码被driver编译成硬件依赖的机器码,最终被GPU... 阅读全文

posted @ 2012-03-11 10:23 迈克老狼2012 阅读(7381) 评论(11) 推荐(0) 编辑

一篇基于opencv的人脸识别文章
摘要:Introduction to Face Detection and Face Recognition:Last updated on 4th Feb, 2012 by Shervin Emami. Posted originally on 2nd June, 2010."Face Recognition" is a very active area in the Computer Vision and Biometrics fields, as it has been studied vigorously for 25 years and is finally produ 阅读全文

posted @ 2012-03-08 21:47 迈克老狼2012 阅读(6354) 评论(1) 推荐(0) 编辑

Directx11教程(4) 一个最基本D3D应用程序(2)
摘要:接着上篇教程的代码,本篇加入基本的D3D代码,实现一个完整的D3D11程序框架。 我们增加一个新类D3DClass, 用来处理3D渲染功能。增加该类后,程序的框架如下图: GraphicsClass.h代码改变如下, 主要是增加了一个D3DClass类成员变量,在Render函数中,将会调用D3DClass的相应Render函数,比如BeginScene、EndScen... 阅读全文

posted @ 2012-03-08 21:29 迈克老狼2012 阅读(8122) 评论(9) 推荐(0) 编辑

Directx11教程(3) 一个最基本D3D应用程序(1)
摘要:在前一篇教程程序代码的基础上,这次我们将增加2个类: InputClass,键盘处理的代码将放在这个类里面,GraphicsClass类,D3D渲染的代码放在这个类里,这两个类都是SystemClass类的成员变量,SystemClass类中会调用这2个类实例的初始化、渲染以及shutdown函数。 增加这个两个类后,应用的程序的框架如下: System... 阅读全文

posted @ 2012-03-08 21:28 迈克老狼2012 阅读(8524) 评论(6) 推荐(0) 编辑

Directx11 教程(2) 基本的windows应用程序框架(2)
摘要:在本教程中,我们把前面一个教程的代码,进行封装。把初始化函数,Run函数,窗口回调函数,ShutdownWindows函数等封装到一个System class中。 首先我们要在前面建立的solution,myTutorialD3D11中,鼠标右键点击,选择New Project, 创建一个名为myTutorialD3D11_1的空工程,在工程中增加main.... 阅读全文

posted @ 2012-03-08 21:27 迈克老狼2012 阅读(4810) 评论(0) 推荐(0) 编辑

Directx11 教程(1) 基本的windows应用程序框架(1)
摘要:在vs2010中,建立一个新的win32工程,名字是: myTutorialD3D11, 注意:同时勾选Create directory for solution,我们同时建立一个solution,后面教程的所有的工程文件,我们都建立在这个solution中。 勾选 Emtpy project 增加source files->add new item->main... 阅读全文

posted @ 2012-03-08 21:25 迈克老狼2012 阅读(8651) 评论(2) 推荐(2) 编辑

一个简单的人脸检测程序
摘要:基于OpenCV harr级联分类器的人脸及眼睛、鼻子、嘴巴检测程序。代码很简单:#include <opencv2/core/core.hpp>#include <opencv2/highgui//highgui.hpp>#include <opencv2/objdetect/objdetect.hpp>#include <string>#include <vector>using namespace std;int main() { cv::CascadeClassifier mFaceDetector; cv::CascadeC 阅读全文

posted @ 2012-03-07 21:30 迈克老狼2012 阅读(1900) 评论(0) 推荐(1) 编辑

OpenCV中读取视频/camera代码
摘要:发现OpenCV中读取视频或者usb camera的方法如此简单,下面是opencv2.31中实现的读取摄像头的代码: int main() { //打开视频文件 //cv::VideoCapture capture("bike.avi"); //0 open default camera cv::VideoCapture capture(0); //检查... 阅读全文

posted @ 2012-03-07 20:26 迈克老狼2012 阅读(1726) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示