【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 ...
随机推荐
- 禁用windows10自动更新
更换win10系统后经常会自动更新,每次关机前都会提示关机并更新选项,禁用window update后每隔几天还是会出现 解决:同时禁用以下两项 Windows Update Medic Servic ...
- RocketMQ知识整理与总结
1.架构 RocketMQ的master broker与master broker没有任何消息通讯,nameserver之间也同样没有消息通信 MQ历史 由数据结构队列发展而来 MQ使用场景 异 ...
- Java基础系列--09_集合2
昨天介绍了集合的主要架构体系,今天主要的目的是学习集合的迭代器的遍历和List的特有功能. 迭代器: 概述:由于多种集合的数据结构不同,所以存储方式不同,取出方式也不同.但是他们都是有判断和获 ...
- June. 27th 2018, Week 26th. Wednesday
To be great, truly great, you have to be the kind of person who makes the others around you great. 要 ...
- Linux学习-汇总
1.基础linux学习 Linux-基础学习(一)-基本命令 Linux-基础学习(二)-基本部署 Linux-基础学习(三)-Nginx学习 Linux-基础学习(四)-部署图书管理系统项目 Lin ...
- [LeetCode] 20. 有效的括号
题目链接:https://leetcode-cn.com/problems/valid-parentheses/ 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串, ...
- js实现分段上传文件
使用js实现分段上传文件,本文使用了FileReader对象,可参考:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader 1)获取文 ...
- echarts 配置
堆叠柱状图, 只要保证 stack 属性相同,就强制画成一列 这就是切割线
- Python支付宝在线支付API
一.蚂蚁金服开发平台申请测试账号 a. 登陆蚂蚁金服开放平台https://open.alipay.com/platform/manageHome.htm,在“开发中心”—“研发服务”下拉处选择沙箱作 ...
- python实现对文件的全量、增量备份
#!/user/bin/env python # @Time :2018/6/6 10:10 # @Author :PGIDYSQ #@File :FileBackup2.py import os i ...