《DirectX 12 3D游戏开发实战》学习记录

本文记录了学习《DirectX 12 3D游戏开发实战》的过程,深入探讨Direct3D技术,涵盖3D图形渲染、性能优化等方面,旨在提升游戏开发技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《DirectX 12 3D游戏开发实战》第二章练习答案


作为学习记录。

/**
 * 练习的最后两题代码比较乱,按部就班的思路,没有技巧性,
 * 但也遇到不少问题,花了很长时间。
 **/

#include <Windows.h>
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <iostream>
#include <vector>
using namespace std;
using namespace DirectX;
using namespace DirectX::PackedVector;

ostream& XM_CALLCONV operator<<(ostream& os, FXMVECTOR v)
{
   
   
	XMFLOAT4 dest;
	XMStoreFloat4(&dest, v);

	cout << "(" << dest.x << ", " << dest.y << ", "
		<< dest.z << ", " << dest.w << ")";
	return os;
}

ostream& XM_CALLCONV operator<<(ostream& os, FXMMATRIX m)
{
   
   
	for (int i = 0; i < 4; ++i) {
   
   
		os << XMVectorGetX(m.r[i]) << "\t";
		os << XMVectorGetY(m.r[i]) << "\t";
		os << XMVectorGetZ(m.r[i]) << "\t";
		os << XMVectorGetW(m.r[i]) << endl;
	}
	return os;
}

void p1()
{
   
   
	XMMATRIX A(-2.0f, 0.0f, 0.0f, 0.0f,
			   1.0f, 3.0f, 0.0f, 0.0f,
			   0.0f, 0.0f, 0.0f, 0.0f,
			   0.0f, 0.0f, 0.0f, 0.0f);
	XMMATRIX X = 1 / 2.0 * (A - 2 / 3.0 * A);
	cout << "X = " << endl << X << endl;
}

void p2()
{
   
   
	XMMATRIX aA(-2.0f, 0.0f, 3.0f, 0.0f,
			   4.0f, 1.0f, -1.0f, 0.0f,
			   0.0f, 0.0f, 0.0f, 0.0f,
			   0.0f, 0.0f, 0.0f, 0.0f);
	XMMATRIX aB(2.0f, -1.0f, 0.0f, 0.0f,
			   0.0f, 6.0f, 0.0f, 0.0f<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值