国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

這篇具有很好參考價值的文章主要介紹了d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  • d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換
    • directx 采用左手坐標(biāo)系
    • 點積與叉積
    • 點積與叉積的正交化
      • 使用點積進(jìn)行正交化
      • 使用叉積進(jìn)行正交化
    • 矩陣與矩陣乘法
    • 轉(zhuǎn)置矩陣 單位矩陣 逆矩陣 矩陣行列式
    • 變換
      • 旋轉(zhuǎn)矩陣
      • 坐標(biāo)變換
    • 利用DirectXMath庫進(jìn)行向量運算、矩陣運算以及空間變換
      • 頭文件與命名空間
      • 核心向量類型 XMVECTOR
      • FMVECTOR GMVECTOR HMVECTOR CMVECTOR XM_CALLCONV
      • XMFLOAT 與 XMVECTOR之間的相互轉(zhuǎn)換
      • 向量的初始化
      • 向量的運算
      • XMMATRIX定義與初始化
      • XMMATRIX FXMMATRIX CXMMTRIX
      • 矩陣操作的常用函數(shù)
      • 空間變換

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

directx 采用左手坐標(biāo)系

在directx中,坐標(biāo)系統(tǒng)一采用左手坐標(biāo)系,與opengl采用右手坐標(biāo)系不同
四指向右指向x軸,然后彎曲向y軸,大拇指的方向即z軸正方向
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

點積與叉積

點積與叉積的正交化

規(guī)范正交向量集:對于向量集的每個向量,它與其它向量之前都是互相正交,并且都是單位向量
正交化:將不規(guī)范正交的集合轉(zhuǎn)換為規(guī)范正交的集合

使用點積進(jìn)行正交化

對于二維 兩個向量的正交化來說
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

將第一個向量作為起始向量,將其標(biāo)準(zhǔn)化為單位向量
然后第二個向量減去在第一個向量上的投影,就只剩下與其正交的那部分,然后再將這部分標(biāo)準(zhǔn)化為單位向量

三維 三個向量
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換
先讓v1與v0正交,然后v2減去在v1與v0方向上的投影,再標(biāo)準(zhǔn)化

更一般的結(jié)論:

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

使用叉積進(jìn)行正交化

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

如上圖所示 使用叉積對三個向量進(jìn)行正交化 即 先以其中一個向量v0為基礎(chǔ) 求出它與v1的叉積w2,由于叉積本身的性質(zhì),此時w2已經(jīng)與v0 v1 兩兩正交了,然后再求 w2 與 w0的叉積,就得到了第三個向量

值得注意的是 在進(jìn)行正交化的過程中,我們可以發(fā)現(xiàn)除了我們選為基礎(chǔ)的向量,其余的向量的方向都可能發(fā)生變化,比如在求相機坐標(biāo)系的三個基向量時候,我們不想改變相機觀察向量的方向,此時我們就可以將該向量設(shè)置為起始向量,這樣該向量的方向就不會改變

矩陣與矩陣乘法

directx采用行主序矩陣
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

在進(jìn)行向量與矩陣的乘法運算時,directx這里采用行向量左乘的形式表達(dá):
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換
最終可以化簡成,向量中每個系數(shù)依次與矩陣的每個行向量進(jìn)行線性組合

轉(zhuǎn)置矩陣 單位矩陣 逆矩陣 矩陣行列式

變換

關(guān)于變換的大部分知識games101中已經(jīng)涵蓋 這里就不多贅述
這里主要記錄下旋轉(zhuǎn)矩陣與坐標(biāo)變換

旋轉(zhuǎn)矩陣

這里介紹繞任意軸旋轉(zhuǎn)$\theta $角的公式推導(dǎo):
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

如上圖所示 黑色的v向量繞著藍(lán)色的k向量旋轉(zhuǎn)$\theta $角,我們可以把v向量分解為垂直于k軸與平行于k軸兩部分,在旋轉(zhuǎn)的過程中,平行于k軸的部分不變,而垂直于k軸的向量發(fā)生改變。

平行于k軸的向量可表示為:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

垂直于k軸的向量即可表示為原向量減去平行向量:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

垂直向量旋轉(zhuǎn)$\theta $角 如上圖的紅色向量所示 可分解為:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

最后的旋轉(zhuǎn)向量 就等于旋轉(zhuǎn)之后的垂直向量 再加上平行向量:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

然后將其轉(zhuǎn)換為矩陣形式(這里可以利用叉積的矩陣表示):
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

坐標(biāo)變換

其實對幾何體進(jìn)行變換與坐標(biāo)變換在數(shù)學(xué)上是等價的:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換
如上圖所示
一種是從幾何體的平移 旋轉(zhuǎn)的視角來理解(幾何體的坐標(biāo)發(fā)生變化)
一種是從坐標(biāo)系的變換來理解(即基向量的變換,坐標(biāo)不變,坐標(biāo)系變化)
我們可以根據(jù)不同的場景 選擇不同的角度去理解

利用DirectXMath庫進(jìn)行向量運算、矩陣運算以及空間變換

頭文件與命名空間

#include <windows.h> // for XMVerifyCPUSupport
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <iostream>
using namespace std;
using namespace DirectX;
using namespace DirectX::PackedVector;

核心向量類型 XMVECTOR

#if defined(_XM_SSE_INTRINSICS_) && !defined(_XM_NO_INTRINSICS_)
    using XMVECTOR = __m128;

核心向量類型XMVECTOR被定義為_m128這種特殊的SIMD類型,被映射到SIMD寄存器,通過SIMD指令能夠一次處理4個32位的浮點數(shù)

XMVECTOR型的數(shù)據(jù)需要使用16字節(jié)對齊,這對于全局以及局部變量是自動實現(xiàn)的,對于類的數(shù)據(jù)成員,建議使用XMFLOAT2/XMFLOAT3/XMFLOAT4類型的結(jié)構(gòu)體來替代,在實際使用時再將其轉(zhuǎn)換為XMVECTOR類型

XMFLOAT3類型的定義:

 // 3D Vector; 32 bit floating point components
 struct XMFLOAT3
 {
     float x;
     float y;
     float z;

     XMFLOAT3() = default;

     XMFLOAT3(const XMFLOAT3&) = default;
     XMFLOAT3& operator=(const XMFLOAT3&) = default;

     XMFLOAT3(XMFLOAT3&&) = default;
     XMFLOAT3& operator=(XMFLOAT3&&) = default;

     constexpr XMFLOAT3(float _x, float _y, float _z) noexcept : x(_x), y(_y), z(_z) {}
     explicit XMFLOAT3(_In_reads_(3) const float* pArray) noexcept : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
 };

FMVECTOR GMVECTOR HMVECTOR CMVECTOR XM_CALLCONV

在進(jìn)行參數(shù)的傳遞時,我們可以直接將XMVECTOR的值作為參數(shù)傳給寄存器,而不是存儲于棧內(nèi),同時為了適應(yīng)不同的平臺與編譯器,定義了FMVECTOR GMVECTOR HMVECTOR CMVECTOR四種類型,可以根據(jù)不同的平臺與編譯器定義為不同的類型。

傳遞規(guī)則如下圖:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

書上舉了兩個例子加以說明:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

注意:
(1)這里的數(shù)量統(tǒng)計統(tǒng)計的是XMVECTOR類型的參數(shù),而不是其它類型的參數(shù)
(2)定義函數(shù)要加上XM_CALLCONV 注解
對于win32來說:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換
而XM_CALLCONV 則是定義調(diào)用約定的:

#if _XM_VECTORCALL_
#define XM_CALLCONV __vectorcall
#elif defined(__GNUC__)
#define XM_CALLCONV
#else
#define XM_CALLCONV __fastcall
#endif

(3) 對于構(gòu)造函數(shù), 只要針對前三個 XMVECTOR 值使用 FXMVECTOR,然後針對其餘值使用 CXMVECTOR
(4) 對于輸出參數(shù),一律使用 XMVECTOR* 或 XMVECTOR& ,因為此時它們不使用寄存器,和其它非XMVECTOR類型的參數(shù)一致

其余更為詳細(xì)的說明可查看:https://learn.microsoft.com/zh-tw/windows/win32/dxmath/pg-xnamath-internals

XMFLOAT 與 XMVECTOR之間的相互轉(zhuǎn)換

以float3為例

vector到float3:

inline void XM_CALLCONV XMStoreFloat3
(
    XMFLOAT3* pDestination,
    FXMVECTOR V
)

ostream& XM_CALLCONV operator << (ostream& os, FXMVECTOR v)
{
    XMFLOAT3 dest;
    XMStoreFloat3(&dest, v);

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

float3到vector:

inline XMVECTOR XM_CALLCONV XMLoadFloat3(const XMFLOAT3* pSource)
XMVECTOR test = XMLoadFloat3(&dest);

向量的初始化

我們可以采用多種方法對向量進(jìn)行初始化定義:

// x,y,z,w全部初始化為0
 XMVECTOR p = XMVectorZero();
// x,y,z,w全部初始化為1
 XMVECTOR q = XMVectorSplatOne();
// 使用四個值來初始化向量
 XMVECTOR u = XMVectorSet(1.0f, 2.0f, 3.0f, 0.0f);
// 使用一個值初始化向量的四個值
 XMVECTOR v = XMVectorReplicate(-2.0f);
// 使用某個向量的一個方向的值初始化向量的四個值
 XMVECTOR w = XMVectorSplatZ(u);

向量的運算

運算符的重載:

 // Vector addition: XMVECTOR operator + 
 XMVECTOR a = u + v;

 // Vector subtraction: XMVECTOR operator - 
 XMVECTOR b = u - v;

 // Scalar multiplication: XMVECTOR operator * 
 XMVECTOR c = 10.0f*u;

向量運算(點積,叉積,單位化等):

//計算向量的長度
XMVECTOR L = XMVector3Length(u);

//求對應(yīng)的單位向量
XMVECTOR d = XMVector3Normalize(u);

//向量之間的點積
XMVECTOR s = XMVector3Dot(u, v);

//向量之間的叉積
XMVECTOR e = XMVector3Cross(u, v);

//求向量w在單位向量n上的投影向量以及垂直向量
XMVECTOR projW;
XMVECTOR perpW;
XMVector3ComponentsFromNormal(&projW, &perpW, w, n);

// 判斷向量之間是否相等
bool equal = XMVector3Equal(projW + perpW, w) != 0;
bool notEqual = XMVector3NotEqual(projW + perpW, w) != 0;

// 計算向量之間的角度
// 計算的是弧度制的數(shù)值結(jié)果
XMVECTOR angleVec = XMVector3AngleBetweenVectors(projW, perpW);
float angleRadians = XMVectorGetX(angleVec);
//轉(zhuǎn)換為角度
float angleDegrees = XMConvertToDegrees(angleRadians);

其它運算:

// 輸出向量v的每個組件的絕對值
cout << "XMVectorAbs(v)                 = " << XMVectorAbs(v) << endl;

// 輸出向量w的每個組件的余弦值
cout << "XMVectorCos(w)                 = " << XMVectorCos(w) << endl;

// 輸出向量u的每個組件的自然對數(shù)
cout << "XMVectorLog(u)                 = " << XMVectorLog(u) << endl;

// 輸出向量p的每個組件的指數(shù)(e的指數(shù))
cout << "XMVectorExp(p)                 = " << XMVectorExp(p) << endl;

// 輸出向量u和向量p對應(yīng)組件的冪次運算結(jié)果
cout << "XMVectorPow(u, p)              = " << XMVectorPow(u, p) << endl;

// 輸出向量u的每個組件的平方根
cout << "XMVectorSqrt(u)                = " << XMVectorSqrt(u) << endl;

// 輸出向量u的組件重新排列為(z, z, y, w)的結(jié)果
cout << "XMVectorSwizzle(u, 2, 2, 1, 3) = " << XMVectorSwizzle(u, 2, 2, 1, 3) << endl;

// 輸出向量u的組件重新排列為(z, y, x, w)的結(jié)果
cout << "XMVectorSwizzle(u, 2, 1, 0, 3) = " << XMVectorSwizzle(u, 2, 1, 0, 3) << endl;

// 輸出向量u和向量v對應(yīng)組件的乘積
cout << "XMVectorMultiply(u, v)         = " << XMVectorMultiply(u, v) << endl;

// 輸出向量q的每個組件限制在[0, 1]范圍內(nèi)的結(jié)果
cout << "XMVectorSaturate(q)            = " << XMVectorSaturate(q) << endl;

// 輸出向量p和向量v對應(yīng)組件的最小值
cout << "XMVectorMin(p, v)              = " << XMVectorMin(p, v) << endl;

// 輸出向量p和向量v對應(yīng)組件的最大值
cout << "XMVectorMax(p, v)              = " << XMVectorMax(p, v) << endl;

get方法:

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

注意上述有些向量運算的結(jié)果(比如兩個向量之間的點積等等)應(yīng)該是個標(biāo)量,但是這里仍然使用XMVECTOR來存儲,將標(biāo)量的結(jié)果復(fù)制到XMVECTOR的各個分量之中,這樣做是為了盡可能降低SIMD向量與標(biāo)量的混合運算次數(shù),提高計算效率

XMMATRIX定義與初始化

一般情況下 XMMATRIX是由XMVECTOR數(shù)組構(gòu)成:

XMVECTOR r[4];

初始化:

// 采用四個XMVECTOR初始化
 constexpr XMMATRIX(FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) noexcept : r{ R0,R1,R2,R3 } {}
// 采用4x4個浮點數(shù)初始化
 XMMATRIX(float m00, float m01, float m02, float m03,
     float m10, float m11, float m12, float m13,
     float m20, float m21, float m22, float m23,
     float m30, float m31, float m32, float m33) noexcept;
// 采用大小為16的浮點數(shù)數(shù)組初始化
 explicit XMMATRIX(_In_reads_(16) const float* pArray) noexcept;

除了上述構(gòu)造函數(shù)的方法,我們也可以使用set函數(shù)來初始化:

inline XMMATRIX XM_CALLCONV XMMatrixSet
(
    float m00, float m01, float m02, float m03,
    float m10, float m11, float m12, float m13,
    float m20, float m21, float m22, float m23,
    float m30, float m31, float m32, float m33
) noexcept

XMMATRIX FXMMATRIX CXMMTRIX

在聲明具有XMMATRIX的參數(shù)時,第一個XMMATRIX參數(shù)應(yīng)當(dāng)為FXMMATRIX,其余應(yīng)為CXMMATRIX

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

由于一個XMMATRIX矩陣看作四個XMVECTOR參數(shù),所以在fastcall調(diào)用約定下,矩陣類型的數(shù)據(jù)都是通過堆棧加以引用,在vectorcall調(diào)用約定下,F(xiàn)XMMATRIX可以傳至寄存器

注意對于構(gòu)造函數(shù)來說,總是采用CXMMATRIX類型來獲取XMMATRIX參數(shù),不需要使用XM_CALLCONV注解

同時,對于自定義類中的矩陣類型的數(shù)據(jù)成員,建議使用XMFLOAT4X4來存儲類中的矩陣。

XMFLOAT4X4與XMMATRIX之間的相互轉(zhuǎn)換:
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換
d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

矩陣操作的常用函數(shù)

//初始化矩陣
 XMMATRIX A(1.0f, 0.0f, 0.0f, 0.0f,
     0.0f, 2.0f, 0.0f, 0.0f,
     0.0f, 0.0f, 4.0f, 0.0f,
     1.0f, 2.0f, 3.0f, 1.0f);

//將矩陣初始化為單位陣
 XMMATRIX B = XMMatrixIdentity();
// 矩陣乘法
 XMMATRIX C = A * B;
//矩陣轉(zhuǎn)置
 XMMATRIX D = XMMatrixTranspose(A);
//求矩陣的行列式
 XMVECTOR det = XMMatrixDeterminant(A);
//求矩陣的逆
 XMMATRIX E = XMMatrixInverse(&det, A);

空間變換

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換

d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換文章來源地址http://www.zghlxwxcb.cn/news/detail-825257.html

到了這里,關(guān)于d3d12龍書閱讀----數(shù)學(xué)基礎(chǔ) 向量代數(shù)、矩陣代數(shù)、變換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • DirectX12(D3D12)基礎(chǔ)教程(二十一)—— PBR:IBL 的數(shù)學(xué)原理(5/5)鏡面反射積分項2及光照合成

    DirectX12(D3D12)基礎(chǔ)教程(二十一)—— PBR:IBL 的數(shù)學(xué)原理(5/5)鏡面反射積分項2及光照合成

    3.5.4、根據(jù) Epic 近似假設(shè)進(jìn)一步拆分積分項為兩部分之積 ??通過之前的步驟,實際上以及得到了我們想要的鏡面反射項的蒙特卡洛積分重要性采樣的形式,并且根據(jù)我們的假設(shè)認(rèn)為視方向等于法線方向,實際上以及可以編碼實現(xiàn)這個積分計算過程,而且依據(jù)假設(shè)我們不再需

    2023年04月08日
    瀏覽(18)
  • D3D11和D3D12共享資源

    D3D11和D3D12共享資源

    最近碰到個偽需求: 游戲串流。 游戲引擎用D3D12渲染, 再把游戲畫面做視頻編碼, 通過網(wǎng)絡(luò)發(fā)送到遠(yuǎn)端做解碼顯示。 第一反應(yīng)就是走全GPU的流程, 不要用CPU把顯存里的數(shù)據(jù)拷來拷去。 所以先獲取渲染完的D3D12的frame buffer, 然后送給Intel MediaSDK去做編碼。 查了一下MediaSDK文檔

    2024年02月04日
    瀏覽(17)
  • 一、D3D12學(xué)習(xí)筆記——初始化Direct3D

    工廠類IDXGIFactory4,這個類有兩個作用: 1.枚舉適配器(顯卡); 2.創(chuàng)建交換鏈 這個類對象的創(chuàng)建如下: 用這個對象mdxgiFactory枚舉我們可以使用的顯卡等適配器: 對于一個選定的適配器pIAdapter,拿著它去創(chuàng)建設(shè)備 IID_PPV_ARGS這個宏實際包含了兩個東西,uuid的COM ID和對象的指針

    2024年02月10日
    瀏覽(20)
  • 《3D 數(shù)學(xué)基礎(chǔ)》12 幾何圖元

    《3D 數(shù)學(xué)基礎(chǔ)》12 幾何圖元

    目錄 1. 直線、線段和射線 1.1 直線 1.2 射線 2. 球 3. AABB 4. 平面 5. 三角形 6. 多邊形 經(jīng)典定義 ?書中對射線定義做了修改:有向線段。 ?算法定義 p0是起始點,d是方向向量,單位向量。?自變量是t,可以很大超過1. p(0)=p0. p(2)=p0+2d; 算法實現(xiàn) ?其中||p - c|| = r是球面公式,D=2r是直

    2024年02月13日
    瀏覽(42)
  • Unity基礎(chǔ)1——3D數(shù)學(xué)

    Unity基礎(chǔ)1——3D數(shù)學(xué)

    ? Math 是 C# 中封裝好的用于數(shù)學(xué)計算的工具類 —— 位于 System 命名空間中 ? Mathf 是 Unity 中封裝好的用于數(shù)學(xué)計算的工具結(jié)構(gòu)體 —— 位于 UnityEngine 命名空間中 ? 他們都是提供來用于進(jìn)行數(shù)學(xué)相關(guān)計算的 ? Mathf 和 Math 中的相關(guān)方法幾乎一樣 ? 但 Mathf 是 Unity 專門封裝的,

    2024年02月10日
    瀏覽(18)
  • Unity3D學(xué)習(xí)之Unity基礎(chǔ)——3D數(shù)學(xué)

    Unity3D學(xué)習(xí)之Unity基礎(chǔ)——3D數(shù)學(xué)

    從這幾部分學(xué)習(xí) 都是用于提供數(shù)學(xué)計算的 Mathf是結(jié)構(gòu)體,Math是類 Mathf是Math的第二次封裝,更適合游戲開發(fā) 2.1.1 PI Π PI 2.1.2 取絕對值 Abs 2.1.3 向上取整 CeilToInt 2.1.4 向下取整 FloorToInt 2.1.5 鉗制函數(shù) Clamp 第一個參數(shù),如果在第二個和第三個參數(shù)之間,就是合法的 如果小于第二個參

    2024年02月20日
    瀏覽(22)
  • Web3D數(shù)學(xué)基礎(chǔ)(平移、旋轉(zhuǎn)、縮放矩陣)—WebGL、WebGPU、Threejs

    Web3D數(shù)學(xué)基礎(chǔ)(平移、旋轉(zhuǎn)、縮放矩陣)—WebGL、WebGPU、Threejs

    參考資料:threejs中文網(wǎng) threejs qq交流群:814702116 本下節(jié)課給大家介紹下矩陣的概念,以及用于幾何變換的矩陣,比如平移矩陣、縮放矩陣、旋轉(zhuǎn)矩陣。 如果你對這些幾何變換的矩陣概念比較熟悉,可以跳過本節(jié)課。 線性代數(shù)、圖形學(xué) 如果你有《線性代數(shù)》、《計算機圖形學(xué)

    2024年02月03日
    瀏覽(51)
  • 有趣的數(shù)學(xué) 數(shù)學(xué)建模入門二 一些理論基礎(chǔ)

    有趣的數(shù)學(xué) 數(shù)學(xué)建模入門二 一些理論基礎(chǔ)

    ?????????現(xiàn)實世界中混亂的問題可以用數(shù)學(xué)來解決,從而產(chǎn)生一系列可能的解決方案來幫助指導(dǎo)決策。大多數(shù)人對數(shù)學(xué)建模的概念感到不舒服,因為它是如此開放。如此多的未知信息似乎令人望而卻步。哪些因素最相關(guān)?但正是現(xiàn)實世界問題的這種開放性導(dǎo)致了解決問題

    2024年02月10日
    瀏覽(18)
  • 人工智能基礎(chǔ)部分24-人工智能的數(shù)學(xué)基礎(chǔ),匯集了人工智能數(shù)學(xué)知識最全面的概況

    人工智能基礎(chǔ)部分24-人工智能的數(shù)學(xué)基礎(chǔ),匯集了人工智能數(shù)學(xué)知識最全面的概況

    、 大家好,我是微學(xué)AI,今天給大家介紹一下人工智能基礎(chǔ)部分24-人工智能的數(shù)學(xué)基礎(chǔ),匯集了人工智能數(shù)學(xué)知識最全面的概況,深度學(xué)習(xí)是一種利用多層神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行特征學(xué)習(xí)和表示學(xué)習(xí)的機器學(xué)習(xí)方法。要全面了解深度學(xué)習(xí)的數(shù)學(xué)基礎(chǔ),需要掌握這些數(shù)學(xué)知識:向

    2024年02月21日
    瀏覽(102)
  • 第一章 數(shù)學(xué)基礎(chǔ)

    第一章 數(shù)學(xué)基礎(chǔ)

    理解范數(shù)概念 區(qū)分向量的內(nèi)積 a ? b mathbf{a} cdot mathbf a ? b 與外積 a × b mathbf{a} times mathbf a × b 區(qū)分矩陣的乘法 A ? B mathbf{A} otimes mathbf{B} A ? B 、內(nèi)積 A B mathbf{A} mathbf{B} AB 、哈達(dá)瑪積 A ⊙ B mathbf{A} odot mathbf{B} A ⊙ B 向量 向量是一組標(biāo)量排列而成的,只有一個

    2024年02月06日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包