D3D9学习笔记(四) 绘制
1直接使用vertex buffer绘制
使用IDirect3DDevice9::DrawPrimitive绘制
HRESULT DrawPrimitive(
[in] D3DPRIMITIVETYPE PrimitiveType,--原语类型
[in] UINT StartVertex,--顶点缓存中第一个顶点的index
[in] UINT PrimitiveCount --绘制的原语的数量(注意不是顶点的数量)最大值查询D3DCAPS9
);
2. 配合indice绘制
3.0 顶点buffer
struct CUSTOMVERTEX
{
float x,y,z;--先定义顶点的数据结构,这里就是三维位置,还可以定义材质、贴图、法向等
};
CUSTOMVERTEX Vertices[] =
{
{-5.0, -5.0, 0.0},
{ 0.0, 5.0, 0.0},
{ 5.0, -5.0, 0.0},
{10.0, 5.0, 0.0},
{15.0, -5.0, 0.0},
{20.0, 5.0, 0.0}
};
3.1原语
D3DPT_POINTLIST 点集
D3DPT_LINELIST 孤立的线集
D3DPT_LINESTRIP 首尾连接的线
D3DPT_TRIANGLELIST 孤立三角形集
D3DPT_TRIANGLESTRIP
D3DPT_TRIANGLEFAN
3.2 clear
使用IDirect3DDevice9::Clear( [in] DWORD Count,--rect的数量
[in] const D3DRECT *pRects, --窗口内清除的矩形区域,可以有多个,null代表整个窗口,此时上面要用0
[in] DWORD Flags,--清楚的surface标志 D3DCLEAR_STENCIL D3DCLEAR_TARGET D3DCLEAR_ZBUFFER
[in] D3DCOLOR Color,--将表面颜色清到这个值
[in] float Z,--z buffer
[in] DWORD Stencil --stencil buffer
)可以清楚某个surface
3.3绘制的一般步骤
1设置buffer
2调用IDirect3DDevice9::DrawPrimitive从buffer绘制原语
不同的顶点元素可以输入到不同的流中,这样可以避免一种元素(如法向)改变不用重进送入其他元素
另外还有一种方法是直接从用户的缓存处而不是从显卡缓存绘制,调用IDirect3DDevice9::DrawPrimitiveUP
3.4present a scene
1.程序不能直接锁住或者渲染到前缓存。前缓存是有后缓存交换过来的。通过IDirect3DDevice9::GetFrontBufferData可以获取截图
2.如果想从同一个设备中创建多个视口,那么就需要create多个swapchain
3.4.1 alpha blending
转载于:https://www.cnblogs.com/weizhixiao/archive/2012/11/22/5697336.html
D3D9学习笔记(四) 绘制相关推荐
- 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...
- Adobe Illustrator学习笔记一 – 绘制K33图
Adobe Illustrator学习笔记一 – 绘制图论中的K33图 作者: kagula 时间 2020-11-14 概要 阅读对象为非美工专业的计算机程序员, 所以对程序员来说显而 ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...
- JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档
POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...
- Ethernet/IP 学习笔记四
Ethernet/IP 学习笔记四 EtherNet/IP Quick Start for Vendors Handbook (PUB213R0): https://www.odva.org/Port ...
- OpenCV学习笔记四-image的一些整体操作
title: OpenCV学习笔记四-image的一些整体操作 categories: 编程 date: 2019-08-08 12:50:47 tags: OpenCV image的一些操作 sP4 ...
- esp8266舵机驱动_arduino开发ESP8266学习笔记四—–舵机
arduino开发ESP8266学习笔记四-–舵机 使用时发现会有ESP8266掉电的情况,应该是板上的稳压芯片的限流导致的,观测波形,发现当舵机运转时,电源线3.3V不再是稳定的3.3V,大概是在3 ...
最新文章
- 无线AP与无线交换机的区别
- CVPR 2020:如何写一篇好论文?
- Serverless 实战 —— Funcraft + OSS + ROS 进行 CI/CD
- nacicat for mysql查询_navicat for mysql怎么用
- Consecutive Factors (20)
- git如何查看和切换账号
- 新AlphaGo这么强!36小时从0自学成大师,100:0把李世乭版秒成渣渣 | Nature论文
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①...
- mysql在缺省状态下_MYSQL面试题
- 双重认证 也不安全:Gmail、Yahoo mail 已被攻破!
- 77-CCI,Commodity Channel Index,商品通道指标.(2015.7.1)
- matlab拉普拉斯算子边缘提取_【图像处理】OpenCV系列十 --- 边缘检测之Laplacian算子...
- python reportlab
- MSN的聊天记录在哪里找到?
- avformat_seek_file函数介绍
- 用户、角色、权限数据库设计
- 快递物流查询,分析派件时效,查找正在派件的单号
- 书记员计算机操作基础知识考试,书记员打字考试怎么考?有哪些形式?
- 施密特正交化(Schmidt)
- 程序员的苦与痛,又有谁懂!改完这个bug就离职,网友:大佬牛逼