教孩子寫遊戲:3D遊戲編程離不開矩陣,我們要如何理解矩陣?

2020-12-08 我是遊戲小胡

矩陣,可以說是本課程中的第一塊硬骨頭。雖然說,我們不需要對矩陣有非常深入的理解,但是,這並不代表著我們可以不學矩陣。這麼說吧,如果你對矩陣一無所知,那麼,整個3D遊戲編程你是學不懂的。你可以靠著強大的記憶力把本課程的代碼記住,並且也能通過自己的摸索寫出類似的3D遊戲來,但是,你對其中的原理是不理解的,將來想要寫功能更強大的3D遊戲,就純粹是天方夜譚了。

但是,擺在我面前的難題是:一個成年人想要學習矩陣都有點困難,如何讓小孩子也明白矩陣的一些道理呢?

面對這個難題,我足足思考了幾個月的時間,依舊沒有什麼特別有效的方法。再後來我想明白了:我們不需要讓孩子完全明白矩陣是什麼,我們只需要讓他們知道矩陣中的幾個關鍵知識點就行了,讓他們明白,為什麼3D遊戲編程需要矩陣

有了這樣的想法之後,我就豁然開朗了。

由於本節內容比較難,所以,我會儘可能地用通俗的語言講明白。接下來,請你跟著我的思路來學習矩陣。

「學」的部分

在這裡,我先假定你有初中數學的水平。在「習」的部分中,我會給出建議,如果你的孩子只有小學水平,你應該把哪些知識教給他。

一、矩陣是什麼樣子的?

從表面上看,矩陣是一個由多個數字組合起來的方陣,比如說下面這個樣子:

從這裡我們看出矩陣的基本特徵:

1.「矩」的意思是矩形,由數字組成的矩形;

2.「陣」的意思是整齊,這些數字排列起來是非常整齊的,並不會歪歪扭扭;

3.矩陣中,橫向的數字是行,豎向的數字是列,行和列都是整數,可以是1或者是n(n是整數);

4.矩陣中,通過「第幾行、第幾列」這種簡便的方式來確定某個數字的具體位置。

以上面這個矩陣為例。它是一個3行×3列的矩陣,數字「1」在第1行第1列,數字「9」在第2行第2列,數字「8」在第3行第2列。

知道矩陣長什麼樣子後,你可能就會有一個疑問:把數字弄成這個樣子,有什麼作用?

相關焦點

  • 教孩子寫遊戲:矩陣在3D遊戲編程中是如何被使用的?
    矩陣就是這樣,當時被發明出來的時候很多人並不理解,一個快速計算方法有什麼用?直到有了計算機,直到程式設計師在處理計算機3D問題時遇到了非常大困難的時候,大家才發現矩陣的真正用處——它能大大提高3D問題中複雜計算的效率。打個比方你就明白了。在電腦上運行3D程序,就好比是在路上開車。而矩陣,就相當於是一個額外的氮氣加速器。
  • 教孩子寫遊戲:3D遊戲編程的必備數學知識,理解三維空間向量
    因為我們要寫的是3D遊戲程序,所以,我們必須要接觸兩個數學方面的難點知識——向量和矩陣。有的人問:這個這麼難,我們可不可以不學?我的答案是這樣的:如果你是有心要學習本課程,那麼這個是必須要學習的,是沒有道理可講的,是想破了腦袋也要學明白的。
  • 3D遊戲編程:Direct3D幫我們做了哪些事情?
    第二點怎麼理解呢?在沒有DirectX之前,我們要寫一個遊戲是比較麻煩的。雖然作業系統(比方說Windows)提供了很多控制接口,這些控制接口可以控制顯示屏幕、聲音、鍵盤、滑鼠等等,但是,這些接口都是為普通程序設計的,遊戲程序完全沒法用。舉個簡單的例子。
  • 如何理解矩陣(2)?
    有興趣的讀者可以去看看齊民友教授寫的《重溫微積分》。我就是讀了這本書開頭的部分,才明白「高等數學是研究運動的數學」這句話的道理。不過在我這個《理解矩陣》的文章裡,「運動」的概念不是微積分中的連續性的運動,而是瞬間發生的變化。
  • 教孩子寫遊戲:我們將要編寫的這個3D遊戲程序什麼樣?
    如果說,這是一套教你寫一個2D遊戲的教程,那麼這一章就是多餘的。可我們學的是3D遊戲編程,提前知道最終的遊戲會寫成什麼樣子,對你接下來的學習過程是有很大幫助的。通過上一節的內容,我們已經知道,3D遊戲的編寫過程,就是模擬「拍電影」的過程,只不過,一切需要的「道具」都需要程式設計師自己去「虛擬化」。
  • 如何理解矩陣?(三)​
    有興趣的讀者可以去看看齊民友教授寫的《重溫微積分》。我就是讀了這本書開頭的部分,才明白「高等數學是研究運動的數學」這句話的道理。不過在我這個《理解矩陣》的文章裡,「運動」的概念不是微積分中的連續性的運動,而是瞬間發生的變化。比如這個時刻在A點,經過一個「運動」,一下子就「躍遷」到了B點,其中不需要經過A點與B點之間的任何一個點。
  • 教孩子寫遊戲:計算機語言那麼多,為何3D遊戲編程偏愛C++語言?
    「學」的內容:在充分理解了計算機是個什麼玩意兒之後,不用我說你都知道,想要寫程序,就要用到計算機語言。通過上節課我們可以知道,電腦是有非常多強大功能的,可是,電腦自己並不會用它自己的強大功能,需要我們通過一定的方式告訴電腦,你應該如何使用。
  • 教孩子寫遊戲:遊戲編程,「學」是一部分,關鍵在於「習」
    雖然編程是一項腦力勞動,但是這項腦力勞動歸根結底是建立在一定的基礎內容之上的。除非是超級天才,否則沒有哪一個程式設計師能夠不靠前人的基礎編程成果來寫程序。所以,想要讓寫程序從體力勞動變成腦力勞動,必須有異常紮實的基本功。
  • 我們該如何看待矩陣的乘法
    在講矩陣的乘法之前,我們先來看線性方程組的幾何解釋,由此來引入矩陣乘法我們該如何看待以及如何運算。
  • 《新理解矩陣1》:矩陣是什麼鬼?
    其實孟巖在《理解矩陣》這三篇文章中,已經用一種很直觀的方法告訴了我們有關矩陣以及線性代數的一些性質和思想。而我對矩陣的理解,大多數也是來源於他的文章。當然,為了更好地理解線性代數,我還閱讀了很多相關書籍,以求得到一種符合直覺的理解方式。孟巖的blog已經很久沒有更新了,在此謹引用他的標題,來敘述我對矩陣的理解。
  • 教孩子寫遊戲:作為新手,要如何理解遊戲中的3D世界呢?
    坐標系對於你來說,是很容易理解的事情,但是,對於一個孩子來講,可能有點麻煩,所以,關於如何讓孩子更容易理解坐標系,我放在文章最後專門講解。在這裡,我先假定,你是大學本科的水平。不是所有本科生都特別明白3D坐標系的,但是,平面的2D坐標系應該都懂,否則你也考不上大學。所以,我還是先簡單說一說什麼是3D坐標系。
  • 教孩子寫遊戲:在Windows下寫3D遊戲,為什麼需要DirectX?
    而且,這個課程是為了激發小孩子的興趣,你不學紮實一點,如何引導小孩?有了框架之後,我們就可以把遊戲內容寫在窗口之中了。那麼,接下來,我們要直接開始寫遊戲核心內容嗎?我想,你的答案和我一樣:不是的。因為我們要寫一個3D的小遊戲示例,即便這個示例再簡單,也包含了巨量的知識點,在你不了解這些知識點之前,你面對3D遊戲的核心代碼就和看天書差不多。所以,在開始寫這個3D遊戲示例之前,我們需要用好幾節課的篇幅把這些必須要知道的知識點講清楚了。這一節作為重要知識點的入門,我設置的比較簡單,只需要懂得一點:為什麼要用DirectX來寫遊戲?
  • 【乾貨】理解深度學習中的矩陣運算
    我們知道,深度學習是基於線性代數和微積分的,反向傳播也離不開求導和矩陣運算。因此了解深度學習內部的數學原理也至關重要,本文從簡單函數求導,到多元函數求偏導,再到矩陣的微積分運算,逐層深入,引導我們探索深度學習背後的學習規則和數學基礎。
  • 極限矩陣遊戲爭霸賽 走進北京理工大學
    4月9日是北京理工大學第一站的最後一場校園行展出,今天的活動上會誕生極品飛車冠軍與微信集贊遊戲活動冠軍,而這些獲勝者將獲得由極限矩陣提供的iPlay掌機一臺。美女助陣極限矩陣X8遊戲一體桌上型電腦    作為校園行第一場的最後一站,極限矩陣品牌展示專區依然人氣爆棚,同學們紛紛體驗起極限矩陣X7\X8超強遊戲一體桌上型電腦,現場設置為期三天的街霸遊戲和極品飛車競技比賽項目圍滿了整個展臺
  • 學習遊戲編程,我們都要做什麼?
    遊戲包含了很多人的夢想,大部分現實中無法做到的事情,遊戲中都能做到,也能在平平無奇的日常生活中,為我們帶來刺激感。對於想學遊戲編程的朋友們,小編這裡推薦C++以及學習之後的流程:C++的學習不用非常深入,學習之後在數據結構上下點功夫,學到樹就可以了,樹和圖可以留到以後看,之前的鍊表堆棧隊列都看掉,爭取自己寫出來。然後學下SDL,這個包很容易學,看網上的教程幾天就學會了,然後接下來就是從最傻逼的遊戲開始寫。
  • 【Tips】Matrices(矩陣)分享
    作者:Eddie yang【前言】被要求寫一篇文章,但實在不知道要寫些什麼,記得有人問過我有關
  • 矩陣的旋轉和相加——數組實現
    1.矩陣在數學中,矩陣是一個矩形陣列排列的複數和實數集合。是高等代數中常見的工具。在計算機科學中,一些數值分析、動畫製作、遊戲等方面就會用到矩陣。在程式語言中矩陣可以用一個二維數組進行模擬,如下圖所示:
  • 教孩子寫遊戲:如何通俗地讓孩子明白遊戲在電腦上的運行過程?
    要把計算機的工作原理理解透徹,幾乎和了解一項「世紀工程」一樣難。理解透徹的意思,不僅僅是要懂得普通程序的運行過程,而且還要懂得這些運算過程是如何變成計算機加法的,甚至還要懂得CPU的電流結構。我想,絕大部分人就算花一輩子的時間也難全面了解。但是,我們要寫程序,一定要懂得程序的運行過程,否則寫程序的時候容易一頭霧水。
  • 少兒遊戲編程:孩子學習遊戲編程有哪些好處?
    有一個非常古老的辦法,就是另外找一個刺激點,把孩子的興趣從手機遊戲上吸引過來。如果這個新的刺激點是學習某項內容,豈不是很完美?我個人的建議是,把孩子的興趣從玩遊戲轉移到製作遊戲上,也就是說,我們通過教孩子如何編寫電腦遊戲,來轉移孩子的注意力。
  • 矩陣遊戲製作人邱晨希:輕動漫IP為遊戲行業帶來了新商機
    在分會場開發者訓練營,來自矩陣遊戲的製作人邱晨希以「國產輕動漫IP《貓總白一航》遊戲化改編產品介紹」為主題進行了分享。他提到,短視頻的興起孕育了嶄新的輕動漫形式,由此,廠商也可以在輕動漫內容中尋找IP以此作為改編遊戲的基礎。