【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 ...
随机推荐
- ChromeDriver截图
一.NuGet安装Selenium.Chrome.WebDriver和Selenium.WebDriver 二.将packages\Selenium.Chrome.WebDriver.2.45\dri ...
- docker 发布方式尝试
docker 发布方式尝试 目前有个小项目, 尝试用docker的方式来发布, 项目只有一个节点, 使用 kubenate 有点小题大做, 所以采用docker-compose来发布. 发布过程 GI ...
- Jquery消息提示插件toastr使用详解
toastr是一个基于jQuery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 1.使用很简单,首选引入toastr的js.css文件 html <script s ...
- jpa使用过程中出现问题记录[持续更新]
1.自定义JPQL语句,出现Not supported for DML operations 错误. 解决方案:在@Query注解上面加上@Modifying注解. //出现问题的代码 @Query( ...
- var、let 及 const 区别
var console.log(a) // undefined var a = 1 从上述代码中我们可以发现,虽然变量还没有被声明,但是我们却可以使用这个未被声明的变量,这种情况就叫做提升,并且提升的 ...
- zabbix proxy
ProxyMode=0 Server=zabbix-server的IPHostname=zabbix proxy(跟在zabbixWED网页建立代理proxies名称一样) LogFile=/data ...
- lombok使用
下载地址 链接:https://pan.baidu.com/s/19Rz7sgasVv5Gc7vw1A4whA 提取码:6bgg lombok的安装: 使用lombox是需要安装的,如果不安装,IDE ...
- Ubuntu16.04安装和配置RabbitMQ
1.RabbitMQ安装前需要erlang环境 apt-get install erlang-nox # 安装erlang erl # 查看relang语言版本,成功执行则说明relang安装成功 2 ...
- Linux操作系统计划任务
++++++++++++++++++++++++++++++++++++++++++++++++标题:Linux操作系统的计划任务内容:计划任务分为单次任务和周期性任务,周期任务分为系统级计划任务和用 ...
- Django的Models字段含义
在model中添加字段的格式一般为: field_name = field_type(**field_options) 一 field options(所有字段共用) 1 null 默认为F ...