【DirectX12】第六章-练习
练习3.
(a)

//LINELIST
std::array<VPosData, > posData = {
VPosData({ XMFLOAT3(-2.0f, -1.0f, +1.0f) }),
VPosData({ XMFLOAT3(-1.5f, +1.0f, +1.0f) }),
VPosData({ XMFLOAT3(-1.0f, -0.3f, +1.0f) }),
VPosData({ XMFLOAT3(-0.3f, +0.7f, +1.0f) }),
VPosData({ XMFLOAT3(-0.0f, -0.3f, +1.0f) }),
VPosData({ XMFLOAT3(+1.0f, +0.7f, +1.0f) }),
VPosData({ XMFLOAT3(+2.0f, +0.0f, +1.0f) }),
VPosData({ XMFLOAT3(+2.7f, +1.5f, +1.0f) }),
};
std::array<std::uint16_t, > indices =
{
,,,
,,,
,,,
,,,
,,,
,,,
};
(b)

//LINELIST
std::array<std::uint16_t, > indices =
{
,,,,,,,
};
(c)
//LINELIST
std::array<std::uint16_t, > indices =
{
,,
,,
,,
,,
,,
,,
,,
,,
,,
,,
,,
,,
,
};

练习4:

//TRIANGLESTRIP
std::array<VPosData, > posData = {
VPosData({ XMFLOAT3(-1.0f, -1.0f, -1.0f) }),
VPosData({ XMFLOAT3(+1.0f, -1.0f, -1.0f) }),
VPosData({ XMFLOAT3(+1.0f, -1.0f, +1.0f) }),
VPosData({ XMFLOAT3(-1.0f, -1.0f, +1.0f) }),
VPosData({ XMFLOAT3(-0.0f, +0.78f, +0.0f) }),
};
std::array<VColorData, > colorData{
VColorData({ XMFLOAT4(Colors::Green) }),
VColorData({ XMFLOAT4(Colors::Green) }),
VColorData({ XMFLOAT4(Colors::Green) }),
VColorData({ XMFLOAT4(Colors::Green) }),
VColorData({ XMFLOAT4(Colors::Red) })
};
std::array<std::uint16_t, > indices =
{
,,,
,,,
,,,
,,,
,,,
,,,
};
在update中添加代码获得旋转效果:
XMMATRIX Ry;
static float Y = 0.0f;
Ry = XMMatrixRotationY(Y);
Y += 0.001;
XMStoreFloat4x4(&mWorld, Ry);
添加另一个图形(新建buffer):
BoxApp.cpp
①修改ommandList:
std::unique_ptr<MeshGeometry> mBoxGeo02 = nullptr;
mCommandList->IASetVertexBuffers(, , &mBoxGeo02->VertexBufferView());//设置顶点buffer视图,起始接口也为0,顶点buffer数量依旧为1个 mCommandList->IASetIndexBuffer(&mBoxGeo02->IndexBufferView());//设置索引buffer视图 mCommandList->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);//不变 mCommandList->SetGraphicsRootDescriptorTable(, mCbvHeap->GetGPUDescriptorHandleForHeapStart());
mCommandList->DrawIndexedInstanced( mBoxGeo02->DrawArgs["cww"].IndexCount, , , , );//改变drawargs里的字符串,因为是另一个物体,用不同名字以区分
【DirectX12】第六章-练习的更多相关文章
- 精通Web Analytics 2.0 (8) 第六章:使用定性数据解答”为什么“的谜团
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第六章:使用定性数据解答"为什么"的谜团 当我走进一家超市,我不希望员工会认出我或重新为我布置商店. 然而, ...
- 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章 继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (37) ------ 第六章 继承与建模高级应用之独立关联与外键关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-13 在基类中应用条件 问题 你想从一个已存在的模型中的实体派生一个新的实体, ...
- KnockoutJS 3.X API 第六章 组件(5) 高级应用组件加载器
无论何时使用组件绑定或自定义元素注入组件,Knockout都将使用一个或多个组件装载器获取该组件的模板和视图模型. 组件加载器的任务是异步提供任何给定组件名称的模板/视图模型对. 本节目录 默认组件加 ...
- Java语言程序设计(基础篇) 第六章 方法
第六章 方法 6.2 定义方法 1.方法的定义由方法名称.参数.返回值类型以及方法体组成. 2.定义在方法头中的变量称为形式参数(formal parameter)或者简称为形参(parameter) ...
- 读《编写可维护的JavaScript》第六章总结
第六章 避免使用全局变量 JavaScript执行环境在很多方面都有其独特之处,全局变量就是其中之一.“全局变量”是一个神秘的对象,它表示了脚本的最外层上下文. 在浏览器中,windows对象往往重载 ...
- 第六章第一个linux个程序:统计单词个数
第六章第一个linux个程序:统计单词个数 从本章就开始激动人心的时刻——实战,去慢慢揭开linux神秘的面纱.本章的实例是统计一片文章或者一段文字中的单词个数. 第 1 步:建立 Linu x 驱 ...
- Getting Started With Hazelcast 读书笔记(第五章,第六章)
第五章 监听 本章应该是Hazelcast的核心机制了,Hazelcast通过注册各种监听器获悉集群中其他应用对数据的修改,成员的加入,退出等. 分为3个层次. 1.EntryListener(对数据 ...
- 第十六章 综合实例——《跟我学Shiro》
简单的实体关系图 简单数据字典 用户(sys_user) 名称 类型 长度 描述 id bigint 编号 主键 username varchar 100 用户名 password varchar 1 ...
- 第六章 prototype和constructor
首先我们看下面一段代码(第六章 01.htm) function myfun() //定义一个函数myfun { }; console.log(typeof (myfun.prototype)); c ...
随机推荐
- Eclipse里JAR文件的打包和使用
作用:用于封装class.properties文件,是文件封装的最小单元: 包含Java类的普通库.资源(resources).辅助文件(auxiliary files)等. 可以将程 ...
- .NET 增加扩展方法
声明:通过一个js的实例来告诉你C#也可以实现这样的效果. 在JS中是这样实现的: 你是否见过JS中给系统默认Array对象增加一个自定义查重方法contains 在没有给Array原型上增加cont ...
- 关于 Angular 跨域请求携带 Cookie 的问题
在前端开发调试接口的时候都会遇到跨域请求的问题.传统的方式是使用 Nginx 反向代理解决跨域.比如所有接口都在 a.com 的域下,通过 Nginx 将所有请求代理到 a.com 的域下即可. 使用 ...
- ios之库Protobuf的使用
https://blog.csdn.net/dangbai01_/article/details/81099001 (1)Protobuf是什么? Protobuf 即 google protocol ...
- 完全自主创建Wrapper Tomcat容器
Wrapper Tomcat 使用说明1. Wrapper Tomcat 简介1) Wrapper Tomcat 是使用Apache Tomcat 整合 Java Service Wrapper 的一 ...
- react中的this.setState()
修改组件的状态可以使用的一些方法: 1.比较常用的 this.setState({ message:"你好" }) 2.state更新是异步的时候 因为this.props和thi ...
- Keil MDK5的ITM调试
https://blog.csdn.net/burgesskzg/article/details/77100453
- ubuntu 安装 evpp
ubuntu 安装 evpp 来源 https://www.cnblogs.com/wisdomyzw/p/9402440.html Ubuntu虚拟机安装开源库evpp说明: EVPP为奇虎360基 ...
- jmeter笔记(9)--JDBC Request的使用
JDBC Request可以向数据库发送一个JDBC(Java Data Base Connectivity)请求(sql语句),获取返回的数据库数据进行操作.它需要和JDBC Connection ...
- java开发代码中的50个性能优化细节
在java程序中,性能的大部分原因并不在java与语言,而是程序本身.养成好的编码习惯非常重要,能够显著地提升程序性能. 1:尽量在合适的场合使用单例 使用单利可以减轻加载的负担,缩短加载时间,提高加 ...