龙书D3D11章节习题答案(第五章)

2024-04-12 05:58

本文主要是介绍龙书D3D11章节习题答案(第五章),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



以下答案仅供参考,有错欢迎留言。


Chapter 5:The Rendering Pipeline

1. Construct the vertex and index list of a pyramid(金字塔), as shown in Figure 5.35(即下图).

Vertex   pyramid[5] = {v0, v1, v2, v3, v4, v5};

// 注意要从面的outside看向inside,然后按照顺时针绕序,如下

UINT     indexList[6] = { 0, 1, 4,

                                      0, 3, 2,

                                      0, 4, 3,

                                      0, 2, 1,

                                      3, 4, 1,

                                      3, 1, 2};

这里我用dx9绘制了一下来验证结果:

1.为了方便观察金字塔全貌,让绘制出的金字塔绕x轴向上翻转45°,并绕y轴不停旋转。

2.设置CULLMODE为D3DCULL_NONE,观察到所有顶点及其连线。

理由:默认的背面剔除方式是剔除逆时针绕序的三角形,即D3DCULL_CCW (Couter-Clock-Wise)。

而在这种方式下,因为旋转中的金字塔底部对于我们的视角(摄像机镜头)来说,一会是正面(绘制)一会是反面(不绘制)。




2. Consider the two shapes shown in Figure 5.36(即下图). Merge the objects into one vertex and index list. (The idea here is that when you append the 2nd index list to the first, you will need to update the appended indices since they reference vertices in the original vertex list, not the merged vertex list.)

这道题的意思似乎是把绘制a和b所用到的vertex list和index list合起来写。。定义v0,v1,...,v12,v13,慢慢写索引不就行了。。也许是我没悟到题目的意思...

更新:作者的意思其实是将多个vertex list和index list合并vertex list都写在vertex buffer里,index list都写在index buffer里,  对于新的vertex list,vertexList1从0开始计数,vertexList2从0+vertexList1.size()开始计数,vertexList3从0+vertexList1.size()+vertexList2.size()开始计数......以此类推。相应地对于新的index list,由于对应的vertex list现在发生了改变,原索引值也需要加上一个偏移量。IndexList1不变,IndexList2需要为每个索引值加上vertexList1.size()来得到原顶点。这些是新的List的改动。。在绘制的时候,比如DrawIndexed,那么还需要给出每个绘制对象的Index开始位置,那么就需要从0,0+IndexList1.size(),0+IndexList1.size()+IndexList2.size()...累计,具体代码在第六章有,这里就只说个大概。




3. Relative to the world coordinate system, suppose that the camera is positioned at (−20, 35, −50) and looking at the point (10, 0, 30). Compute the view matrix assuming (0, 1, 0) describes the “up” direction in the world.

这篇关于龙书D3D11章节习题答案(第五章)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896290

相关文章

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

poj 3104 二分答案

题意: n件湿度为num的衣服,每秒钟自己可以蒸发掉1个湿度。 然而如果使用了暖炉,每秒可以烧掉k个湿度,但不计算蒸发了。 现在问这么多的衣服,怎么烧事件最短。 解析: 二分答案咯。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <c

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

【附答案】C/C++ 最常见50道面试题

文章目录 面试题 1:深入探讨变量的声明与定义的区别面试题 2:编写比较“零值”的`if`语句面试题 3:深入理解`sizeof`与`strlen`的差异面试题 4:解析C与C++中`static`关键字的不同用途面试题 5:比较C语言的`malloc`与C++的`new`面试题 6:实现一个“标准”的`MIN`宏面试题 7:指针是否可以是`volatile`面试题 8:探讨`a`和`&a`

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形

【C++ Primer Plus习题】12.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "String.h"using namespace std;int main(){String s1(" and I am a

c++习题30-求10000以内N的阶乘

目录 一,题目  二,思路 三,代码    一,题目  描述 求10000以内n的阶乘。 输入描述 只有一行输入,整数n(0≤n≤10000)。 输出描述 一行,即n!的值。 用例输入 1  4 用例输出 1  24   二,思路 n    n!           0    1 1    1*1=1 2    1*2=2 3    2*3=6 4

React第五章(swc)

swc 什么是swc? SWC 既可用于编译,也可用于打包。对于编译,它使用现代 JavaScript 功能获取 JavaScript / TypeScript 文件并输出所有主流浏览器支持的有效代码。 SWC在单线程上比 Babel 快 20 倍,在四核上快 70 倍。 简单点来说swc实现了和babel一样的功能,但是它比babel快。 FAQ为什么快? 编译型 Rust 是

C语言程序与设计第四版课后习题 - 1~8章大合集

前言 本文章是一个大合集,按照课后习题的命名方式命名,方便寻找,只需要在目录上点相对应的题号即可在这里插入图片描述 第一章课后习题 1.1 编写一个C程序 题目概述: 请参照本章例题,编写一个C程序,输出一下信息: *****************************Very good!***************************** 代码实现: #define

【C++ Primer Plus习题】12.1

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "Cow.h"using namespace std;int main(){Cow c1;Cow c2("老母牛", "喝奶"