課程追憶之《計(jì)算機(jī)圖形學(xué)》【曲線曲面篇】

大家好囤耳,距離上一篇博文將近一個(gè)月篙顺,時(shí)間過得好快,原本計(jì)劃周更的充择,后面推到半月跟德玫,實(shí)際到現(xiàn)在是月更,每次在準(zhǔn)備寫點(diǎn)什么的時(shí)候椎麦,都會(huì)被一些雜亂的事物打擾宰僧,哎,重度拖延癥观挎、懶癌晚期~

繼上次述說了《計(jì)算機(jī)結(jié)構(gòu)與組成》的課后作業(yè)之后撒桨,這次我來說說《計(jì)算機(jī)圖形學(xué)》的課后作業(yè)吧(ps:上課內(nèi)容都差不多,課后作業(yè)比較有意思)

《計(jì)算機(jī)圖形學(xué)》是我大三上學(xué)期的專業(yè)選修課键兜,課程沒有特別的教材凤类,教學(xué)使用的PPT和課后作業(yè)是MIT大學(xué)的圖形學(xué)內(nèi)容:http://groups.csail.mit.edu/graphics/classes/6.837/F04/calendar.html 這是很老的一個(gè)版本了,看鏈接還是04年的普气,現(xiàn)在MIT已經(jīng)將這門課作為公開課開放給全世界的同學(xué)學(xué)習(xí)谜疤,課程代號(hào)是6.837,給一個(gè)該課程歷年信息:http://stellar.mit.edu/courseguide/course/6/fa17/6.837/index.html 有需要可以自己在里面搜索哦~~~

我們還是繼續(xù)說這門課的課后作業(yè)吧∫目模《計(jì)算機(jī)圖形學(xué)》的課后作業(yè)分幾個(gè)大模塊履肃,或者說是方向。有點(diǎn)線面坐桩、光線投射尺棋、迭代系統(tǒng)、粒子系統(tǒng)等等(其實(shí)是我自己劃分的)绵跷。由于作業(yè)量多膘螟,我就分幾次來細(xì)說,這次我先說說點(diǎn)線面這一塊的內(nèi)容吧(沒有點(diǎn)碾局,作業(yè)中沒涉及到點(diǎn)的內(nèi)容荆残,點(diǎn)本身也沒啥好說的)。

首先來說說曲線和曲面净当。在做這個(gè)作業(yè)之前内斯,原作者已經(jīng)把基礎(chǔ)框架、繪制的方式像啼、點(diǎn)選操作等等都實(shí)現(xiàn)好了俘闯,我們只需要按照作者的設(shè)計(jì)和模板完成曲線曲面的計(jì)算,也就是作者已經(jīng)定好框架和接口忽冻,我們只用實(shí)現(xiàn)曲線的計(jì)算(是不是很方便)

對(duì)于圖形學(xué)中的基本點(diǎn)線面中的點(diǎn)真朗,沒啥好說的,直線好像也沒啥要弄的甚颂,畢竟已經(jīng)讀到大學(xué)蜜猾,這些基本的認(rèn)識(shí)還是有的秀菱。那就先來認(rèn)識(shí)一下在圖形學(xué)中用得比較多的特殊曲線振诬。

圖01 曲線

如上圖所示,在曲線方面衍菱,先學(xué)習(xí)貝塞爾曲線赶么、比樣條曲線和插值樣條曲線。在上面的三種曲線中脊串,貝塞爾曲線算是工作后見到和用到得比較多曲線辫呻,比如角色動(dòng)畫里的動(dòng)畫曲線、各種插值曲線等等琼锋,用貝塞爾曲線都能得到比較好的控制效果放闺。

在完成基本的曲線繪制計(jì)算后,作為附加作業(yè)缕坎,提出了使用幾何辦法來繪制貝塞爾曲線怖侦,并用動(dòng)圖來展現(xiàn)貝塞爾曲線的計(jì)算和繪制過程,結(jié)果如下圖所示:

動(dòng)圖01 貝塞爾曲線 動(dòng)畫

嗯,這里提到的貝塞爾的幾何算法匾寝,可以非常好的理解貝塞爾曲線搬葬,同時(shí)在工作后如果忘記了貝塞爾的計(jì)算方程,常常用這種幾何算法來解燃眉之急艳悔,嘿嘿~~~(ps:幾何算法在未加優(yōu)化和變形的時(shí)候急凰,效率不是最高的)

完成曲線的基本計(jì)算后,開始研究曲線間的轉(zhuǎn)換猜年,目前只完成了貝塞爾曲線和比樣條曲線間的互相轉(zhuǎn)換抡锈,如下所示:

圖05 貝塞爾曲線轉(zhuǎn)比樣條曲線

這個(gè)是貝塞爾曲線轉(zhuǎn)比樣條曲線,可以看到畫出的圖像完全一樣码倦,但是曲線的控制點(diǎn)卻天差地別企孩。

圖06 比樣條曲線轉(zhuǎn)貝塞爾曲線

這是比樣條曲線轉(zhuǎn)貝塞爾曲線,左邊是前面繪制的比樣條曲線袁稽,右邊是該比樣條曲線轉(zhuǎn)換為貝塞爾曲線的結(jié)果勿璃。

在上面完成了4個(gè)控制點(diǎn)的曲線后,我們?cè)賮硗嫱娑嘤嗨膫€(gè)控制點(diǎn)的
ps:多個(gè)控制點(diǎn)有多種不同處理的方式

  1. 每四個(gè)控制點(diǎn)組成一個(gè)小的曲線推汽,然后連接在一起补疑,這種多控制點(diǎn)曲線其實(shí)是一小段一小段的曲線連接起來的,會(huì)出現(xiàn)比較突兀的連接點(diǎn)歹撒,也就是切線不平滑(這種最簡(jiǎn)單)
  2. 用所有的控制點(diǎn)一起作用生成一條平滑曲線

第一種比較簡(jiǎn)單莲组,采用的也比較多
圖就看下面的吧。有多余四個(gè)點(diǎn)的曲線暖夭,自然有多余四個(gè)點(diǎn)的曲線間的轉(zhuǎn)化锹杈,如下所示:

圖07 多點(diǎn)貝塞爾曲線轉(zhuǎn)比樣條曲線

左邊是多余4個(gè)點(diǎn)(3n+1) 的貝塞爾曲線,右邊是該曲線轉(zhuǎn)化為比樣條曲線的圖形迈着。

圖08 多點(diǎn)比樣條曲線轉(zhuǎn)貝塞爾曲線.png

左邊是多點(diǎn)(3n+1) 控制的比樣條曲線竭望,右邊是該曲線轉(zhuǎn)化的貝塞爾曲線

在曲線玩得差不多后,我們就該進(jìn)階了裕菠,該開始玩玩簡(jiǎn)單的面了咬清,就以前的知識(shí),我們知道:點(diǎn)運(yùn)動(dòng)生成線奴潘,線運(yùn)動(dòng)生成面旧烧,所以最先接觸的面則是有上面提到的曲線來生成。曲線中最易控制和使用的是貝塞爾曲線画髓,所以就有了下面的圖形:

  1. 首先是由6個(gè)點(diǎn)(實(shí)際有7個(gè))組成一個(gè)圓環(huán)掘剪,如下圖左邊所示
  2. 然后通過這個(gè)圓環(huán)旋轉(zhuǎn)360度,生成一個(gè)圓環(huán)體奈虾,如下圖中間所示
  3. 最后控制圓環(huán)的采樣精度和旋轉(zhuǎn)360度中的采樣精度夺谁,可以生成不同精度的圓環(huán)體肆汹,如下圖右邊所示
圖09 圓環(huán)旋轉(zhuǎn)生成圓環(huán)體

除了圓環(huán)體,我們還可以通過控制曲線旋轉(zhuǎn)生成不同的體狀物體予权,如下所示:

圖10 曲線旋轉(zhuǎn)生成對(duì)應(yīng)體狀物

這是一個(gè)通過曲線生成圓桶狀的物體昂勉。

玩了曲線,也玩了由曲線旋轉(zhuǎn)生成的面扫腺,接下來我們來玩玩由多條曲線插值生成的曲面岗照,如下所示:

圖11 貝塞爾曲面點(diǎn)生成貝塞爾曲面

這里是由4條貝塞爾曲線并列后,生成的貝塞爾曲面:

  1. 首先取到4條貝塞爾曲線上相同等分的4個(gè)點(diǎn)
  2. 然后由這4個(gè)點(diǎn)生成一條貝塞爾曲線
  3. 在生成貝塞爾曲線上等分相同的點(diǎn)記錄下來
  4. 把得到的點(diǎn)按相同規(guī)則纏繞生成三角形面笆环,然后顯示出來

圖最左邊是相應(yīng)的貝塞爾控制點(diǎn)攒至,后面三張是不同采樣精度得出的貝塞爾曲面

圖12 貝塞爾曲面查看

你以為生成了最終的貝塞爾曲面就是這次作業(yè)的終極目標(biāo)么?其實(shí)不是的躁劣,這個(gè)作業(yè)的終極目標(biāo)是由上面完成的功能迫吐,同時(shí)運(yùn)行生成一個(gè)沒有底的茶壺,如下所示:

圖12 由茶壺點(diǎn)生成茶壺模型

如果全部都按要求做了账忘,那么這里什么都不用做就可以看到最終的茶壺效果

這里是茶壺的3D查看效果志膀,這個(gè)茶壺是沒有底的,如果有底的話鳖擒,那就是你做錯(cuò)了O(∩_∩)O哈哈~

動(dòng)圖02 茶壺模型查看
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溉浙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蒋荚,更是在濱河造成了極大的恐慌戳稽,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件期升,死亡現(xiàn)場(chǎng)離奇詭異惊奇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)播赁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門颂郎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人行拢,你說我怎么就攤上這事祖秒〉ǎ” “怎么了舟奠?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)房维。 經(jīng)常有香客問我沼瘫,道長(zhǎng),這世上最難降的妖魔是什么咙俩? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任耿戚,我火速辦了婚禮湿故,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘膜蛔。我一直安慰自己坛猪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布皂股。 她就那樣靜靜地躺著墅茉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呜呐。 梳的紋絲不亂的頭發(fā)上就斤,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音蘑辑,去河邊找鬼洋机。 笑死,一個(gè)胖子當(dāng)著我的面吹牛洋魂,可吹牛的內(nèi)容都是我干的绷旗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼副砍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼刁标!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起址晕,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤膀懈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后谨垃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體启搂,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年刘陶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胳赌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匙隔,死狀恐怖疑苫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纷责,我是刑警寧澤捍掺,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站再膳,受9級(jí)特大地震影響挺勿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喂柒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一不瓶、第九天 我趴在偏房一處隱蔽的房頂上張望禾嫉。 院中可真熱鬧,春花似錦蚊丐、人聲如沸熙参。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尊惰。三九已至,卻和暖如春泥兰,著一層夾襖步出監(jiān)牢的瞬間弄屡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工鞋诗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留膀捷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓削彬,卻偏偏與公主長(zhǎng)得像全庸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子融痛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于CoreAnimation CoreAnimation是蘋果提供的一套基于繪圖的動(dòng)畫框架壶笼,下圖是官方文檔中給出...
    正謙閱讀 3,403評(píng)論 3 15
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,164評(píng)論 25 707
  • 最近在做項(xiàng)目的時(shí)候,需要用到一個(gè)動(dòng)畫雁刷,非常簡(jiǎn)單的動(dòng)畫覆劈,簡(jiǎn)單到就是直接對(duì)一個(gè)View做平移... 然而雖然動(dòng)畫簡(jiǎn)單,...
    IAMDAEMON閱讀 4,285評(píng)論 12 69
  • 談?wù)勜惾麪柷€ 最近在做項(xiàng)目的時(shí)候沛励,需要用到一個(gè)動(dòng)畫责语,非常簡(jiǎn)單的動(dòng)畫,簡(jiǎn)單到就是直接對(duì)一個(gè)View做平移… 然而雖...
    雨潤(rùn)聽潮閱讀 6,001評(píng)論 1 16
  • 實(shí)例分享:某APP產(chǎn)品需求文檔 1.概述 1.1 項(xiàng)目背景 旅游類應(yīng)用按照用戶需求劃分為:資訊目派、預(yù)訂坤候、交通、分享四...
    PM_allen閱讀 13,147評(píng)論 0 20