Ⅰ 實戰opengl三維可視化系統開發與源碼精解怎麼樣
本書以「鐵路三維可視化系統」實例作為全書的主線,以循序漸進的講解方式,通過實際應用系統來講解OpenGL在實際三維可視化系統開發中所應用到的編程方法、技術和技巧。系統包括大規模三維地形可視化系統、三維線路設計系統、三維場景漫遊系統、第三方模型(3DS、DXF)管理和應用系統、紋理管理和應用系統、多媒體輸出系統(三維動畫錄制、圖像序列錄制、列印輸出、導出到AutoCAD等外部模型)。
內容涵蓋了OpenGL程序框架、OpenGL幾何模型、坐標變換、紋理映射、材質、計算機動畫技術、
Ⅱ 如何用Html5中的canvas模擬三維小球運動動畫
下面詳細解釋都在源碼中:
<!doctype html><html><head><meta charset="utf-8"><title>無標題文檔</title><style>#canvas{ background:#eee;}</style></head><body><canvas id='canvas' width="500" height='500'></canvas><script>window.onload=function(){ var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); //平移,主要是將坐標軸平移到中間,為了畫圓定位方便 context.translate(250,250); //定義焦距 var fos = 300; //存放小球的數組 var arr = []; for(var i = 0 ; i < 8 ; i++){ var arcObj = { //半徑,用隨機數目的是讓每個小球大小不一 r:10+5*Math.random(), //起始X坐標 x:-200+i*30, //起始Y坐標 y:-100+200*Math.random(), //起始Z坐標,這里需要理解,我們要構造的是一個三維立體小球的運動 //則X,Y軸不能表達空間感,你需要充分的想像Z坐標軸是順著你的眼睛的就是Z軸 z:i*10, //小球的運行速度 speed:20 } arr.push(arcObj); } setInterval(function(){ //清除畫布,每次畫之前先將上次的清除掉.然後繪出本次的,就可以形成動畫效果. context.clearRect(-250,-250,500,500); //將arr排序,sort()的參數則是作為一種比較規則 var newArr = arr.sort(function (a,b){ return a.z > b.z }); //循環繪出剛才定義的幾個小球 for(var i = 0 ; i < newArr.length ; i++){ //z軸的變化,每次變化都是 速度*時間+z = z;由於speed未定義單位,則時間可忽略 arr[i].z += arr[i].speed; //讓小球來回彈跳 if(arr[i].z > 600 || arr[i].z < -50){ arr[i].speed *= -1; } //這里的縮放比例,一定要注意,你要想像你眼前有個球垂直從遠處飛來,逐漸變大的過程,Z軸不斷增加.焦距就想像成從最初你到球的距離,通過運動後,現在到球的距離和焦距就可以形成縮放比例. var scales = fos/(fos+arr[i].z); var x1 = arr[i].x*scales; var y1 = arr[i].y*scales; //保存之前的context繪圖環境,即後續可以用context.restore方法可以恢復, //目的是讓下面的context變化不影響其他的畫圖樣式. context.save(); //平移X,Y 也可以不用平移X,Y只要在下面的畫圓中定義相應的X,Y也能達到相同的目的 context.translate(x1,y1); //將坐標軸縮放,目的是讓小球的大小發生視覺上的變化. context.scale(scales,scales); context.beginPath(); //定義放射性顏色漸變 var colorObj = context.createRadialGradient(0,0,0,0,0,arr[i].r); colorObj.addColorStop(0,'#cbc0f3'); colorObj.addColorStop(1,'#06198b'); context.fillStyle=colorObj; context.arc(0,0,arr[i].r,0,Math.PI*2); context.fill(); context.restore(); } },50);}</script></body></html>
主要要理解焦距的概念,實際開發過程中,可能X軸,Y軸都有小球的運動速度分量,那才能在運動的過程中轉彎,撞牆等特效.
Ⅲ 三維動畫的發展史及未來-誰能告訴我呢
動畫是一個電影類型,不是兒童片(當然在目前的中國是沒戲)″徐克語。英語中把漫畫分為兒童看的"CARTOON(卡通)″和青少年看的"COMIC(漫畫)″,在動畫界也是同樣。所以20歲的我看動畫片沒有什麼可奇怪的。
認為動畫片是"小孩子看的″的觀點,形成的原因主要是:我國的動畫片針對的年齡層太小,不但國產的動畫片只有7歲以下的人才看,連引進的動畫片也只是針對12歲以下年齡層的。所以無怪乎去年引進的《灌籃高手》會引起轟動,相信很多大人也看見《灌籃高手》後會驚呼:"居然還有適合高中生看的動畫片!?″這真是中國動畫業的悲哀!
世界的動畫大國,當然是美國和日本,而兩國的動畫作品風格也有所不同,"老美″的動畫以數字化的電腦製作為主,號稱"美國沒有『動畫繪制人』″。其特點是誇張的人物形象和動作,且節奏較快,體現了美國人的直率,爽快的性格。代表有狄斯尼;華納等公司。而日本的動畫以賽璐璐和噴筆繪制為主,體現的是一種唯美的風格。特點是以優美的人物造型,內涵豐富的對白及劇情吸引觀眾,但相對的,定格畫面就較多(1995年的超人氣大作《新世紀Evangelion》創造了3分50秒定格且無對白的記錄,但銷售量仍排亞洲第一,庵野大神的功力真是高深莫測!),節奏也較慢。代表么……吉卜力、GAINAX、SUNRISE、東映……
而中國動畫擁有的是什麼呢?只要談到這個話題,很多"專家″都會這么說:"民間流傳的皮影乃動畫之鼻祖,建國後的《大鬧天宮》、《哪吒鬧海》更是開了歷史之先河……″再往後呢?再往後則是單調生硬的色彩,粗糙且毫無美感可言的人物型,幼兒園小朋友都覺得幼稚的劇情,片中大人發音象3歲孩子,還有毫無感情的對白……。可以說,中國動畫觀眾沒有7歲以上的!我們可以毫不客氣地稱之為"幼園動畫″。
然而,形成"幼稚園動畫″的原因又是什麼呢?我以為有以下幾點:
一、動畫片的概念的錯誤認識以及對觀眾年齡層的狹隘定位:
前面提到了,很多人認為動畫片是小孩子看的,因此從編劇到配音都極盡幼稚童趣(所謂)之能事。因此把觀眾年齡層次定位在了一個想當然的低谷中,效益不好也是理所當然的了。可在日本,動畫片分為了3個等級,分別面對3~12歲;12~18歲和18歲以上的年齡層。美國更是把動畫片做得老少兼宜,如《獅子王》。解決方法:盡快改變對動畫片的認識。
二、題材陳舊且無聊:
國產動畫片的題材似乎除了"葫蘆娃斗妖怪″、"琴島和海爾″就是"大灰狼和小白兔″、"頭兒子和小頭爸爸″,這些東西,小學2年級以上就沒人看了。說得再不客氣點,日本的三流科幻片《鹹蛋超人(奧特曼)》(按某些人的習慣把它歸入動畫片)都比它們來得好看。解決方法:考慮採用受歡迎的劇本(如金庸小說)或年輕人寫的劇本(接近青少年喜好)。
三、技術落後或盲目使用"新″技術:
看起來,中國動畫恐怕還停留在老式的"塑料紙+水彩筆″的"幻燈式動畫片″階段吧(未證實),既沒美國的數字化技術流暢,動感強,也沒有日本的"賽璐璐+噴筆″柔和,美觀。偶爾有趕趕時髦,用電腦著色的作品也是用"畫筆″一類的簡單軟體"填空″。色彩方面已不是缺乏過渡感,而是乾脆完全沒有。不要說與美、日的優秀CG(電腦繪圖)相比,就連傳統的手繪也不如,充其量也就是比小兒塗鴉略高一籌。如果有人指著電視屏幕上的一堆單調的色塊得意地說:"這是咱們國家用電腦製作的動畫片″,那麼我只想找個地方大哭一場!解決方法採用真正的新技術或更美觀的傳統技術(比如水墨畫)。
四、計劃經濟時代的荼毒:
我國的動畫片大多出自"××電視台動畫部″或"××美術製片廠″,這些都是國家資金在支持,經濟效益當然要排在社會效益的後面。於是乎,動畫片成了沒人愛看的"幼兒公益廣告″或"幼兒教育節目″,當然也就比不過外國的"文化侵略″啦。國家與其不厭其煩地投巨資生產既沒市場又沒觀眾的垃圾片,不如花點力氣營造一個良性動畫市場解決方法:動畫製作商業化、市場化。
五、外行指揮內行或外行指揮外行加上缺乏敬業精神:
現在什麼樣的人都在搞動畫,內行也搞,外行也搞,只是因為它賺錢。"因為現在一般是決策者、策劃者是製作人,而不是具體搞動畫的。這好比一個不會開車的人教別人開車,由比而出的毛病,車也肯定搞不好了。″(徐克語)而國外"加工片″的泛濫,更導致了我國本來就少有的有能力的專業動畫人員的思路匱乏,不思進取,夜郎自大。既然"動畫片是給小孩子看的東西,小孩本來就沒有欣賞的能力,也就用不著花大力氣製作″,因而也就有很多人可以以此為借口偷工減料。解決方法:培養專業的動畫製作隊伍,並合理使用;強化工作人員的職業道德。
聲優質量低劣:中國播放的動畫片,無論是國產的還是國外的,配音不但毫無感情,而且跟角色的年齡,個性不符合。普遍配音的年齡小於角色的實際年齡,經常可以看見我國配音的外國動畫片中的高中生尚未變聲(例如月野兔)之類的情況。而無論是"酷哥″還是搞笑專家,在國內都是"千人一聲″。港台的聲優雖然有些"嗲″,但配音的效果與角色本來的年齡,性格到沒什麼大的出入。解決方法:提高配音演員的素質,可以學習日本,將優聲當作明星宣傳,既促進了他們的上進心,又使動畫片更加正規化。進品片放原聲既體現了原來的氣氛,又節省了經費,又何樂而不為呢?
如今的青少年,看的是《灌籃高手》、《口袋妖怪》、《花木蘭》,喜歡的是"酷″。而充滿"鄉土″氣息的國產動、漫畫早已無法滿足他們的慾望。近來出現了一些本土漫畫雜志,雖然臨摹、半臨摹的作品還比較多,但總是邁出了第一步。而我們的動畫業呢?悲哀啊,悲哀啊!
我國引進動畫片(尤其是日本的)時,由於引進者並不知道什麼樣的動畫片會受青少年歡迎,因此他們只能找一些他們看起來似乎可能比較會受國內觀眾歡迎的,且內容絕對"健康″的片子引進到國內。(不排除某些人想實施"地方保護主義的可能性)大人氣的《新世紀EVA》可能就是因為內容有一些"血腥″或"少兒不宜″而無法為一些人接受。或是因為內容涉及灰色人生觀,人們擔心"少年兒童無法理解″,或是想杜絕"文化侵略″,或是還有其它一些不為人知的原因而真索性"寧可錯殺三千,也不放過一個″,不予引進。或者更簡單的原因:他們根本不知道還有這么一部受歡迎的動畫片。
說到"文化侵略″又想起N年前X市(還不是一個小地方、好像是深圳吧)某人發起的"全市中、小學生聯名告別卡通″的鬧劇。我要說的是:防止"文化侵略″,靠"告別″是沒有用的,只有製作出真正吸引觀眾的精品才行。
最近的《寶蓮燈》可以說是中國動畫的最高水平了。實際上,《寶蓮燈》的水平絕對不低於日本(當然《EVA》還是沒法比),但它還是失敗在題材上--這種老掉牙的題材,如果不經過再創作,是沒有生命力的。當看到晚報上提到《寶蓮燈》首場由於張信哲而爆滿且初中女生佔大半時,我的心情的確只能用"悲哀″來形容一部動畫片需要歌星來拉票房,不是動畫業的悲哀又是什麼!
悲哀啊,中國動畫業者。
悲哀啊,中國動畫觀眾……
我不想這樣悲哀下去了,可是誰能幫助我呢?……
不在悲哀中爆發,就在悲哀中滅亡!
Ⅳ 急求用C++在Opengl環境下做一個三維動畫,簡單的就行,望高人幫小妹一忙
你上網搜《NEHE的教程》,然後找源碼下。。都是OPENGL的動畫。。
Ⅳ Unity3D這款游戲引擎軟體的源碼是開源的嗎
Unity3D是不開源的。
相關介紹:
Unity類似於Director、Blender game engine、Virtools 或 Torque Game Builder等利用交互的圖型化開發環境為首要方式的軟體。
開放源碼軟體通常是有right的,它的許可證可能包含這樣一些限制: 蓄意的保護它的開放源碼狀態,著者身份的公告,或者開發的控制。「開放源碼」正在被公眾利益軟體組織注冊為認證標記,這也是創立正式的開放源碼定義的一種手段。
(5)三維動畫源碼擴展閱讀
開放源碼軟體主要被散布在全世界的編程者隊伍所開發,但是同時一些大學,政府機構承包商,協會和商業公司也開發它。源代碼開放是信息技術發展引發網路革命所帶來的面向未來以開放創新、共同創新為特點的、以人為本的創新2.0模式在軟體行業的典型體現和生動註解。
共享軟體。允許他人自由拷貝並收取合理注冊費用。使用者可在軟體規定的試用期限內免費試用,再決定注冊購買與否。大部分共享版軟體都有功能和時間限制,試用期通常分為7天、21天、30天不等。而有的共享軟體還限制用戶只能安裝一次,若刪除後重新安裝將會失效。像Winzip、ACDSee等軟體就是共享軟體。
Ⅵ blender和c4d哪個強大
前者是大型主流三維動畫商業軟體,後者是開源免費三維軟體,這是最大的區別。沒有哪個更好,只能說商業軟體更具有商品屬性,包括後期支持與服務。
初學者比較建議學c4d,起碼c4d就業前景比blender好,在工藝美工和廣告市場都比較需要c4d人才。而且c4d的話對於初學者來說上手比較簡單。
可以通過看教程學習,在火星自學網都有教程,blender上手部分一直都是個難題,這個軟體的操作習慣跟所有3D軟體都很不一樣,非常依賴快捷鍵,界面也比較有個性,基本上沒教程看不懂。
Blender的特點
Blender擁有方便在不同工作下使用的多種用戶界面,內置綠屏摳像、攝像機反向跟蹤、遮罩處理、後期結點合成等高級影視解決方案。Blender內置有Cycles渲染器與實時渲染引擎EEVEE。同時還支持多種第三方渲染器。
Blender為全世界的媒體工作者和藝術家而設計,可以被用來進行三維可視化,同時也可以創作廣播和電影級品質的視頻,另外內置的實時三維游戲引擎,讓製作獨立回放的三維互動內容成為可能。
Ⅶ andorid widget 中能否用GLSurfaceView 做3D動畫,請高手解答我是基於andorid 源碼開發的,
你好,請問GLSurfaceView可以在widget用?我寫了個顯示 載入小部件時出現問題,用textview就好 。能不能給個例子,非常感謝!
Ⅷ 求幫做一個30秒3D廣告源文件,三十秒就可以,內容不限,不用做太專業,作業應付而已~懸賞之外還有100人民
http://www..com/?word=3d%E7%B4%A0%E6%9D%90&se=360se_8_dg&ie=utf-8 找人做估計就比較麻煩了,不如你看看這些素材庫有沒有合適的,直接下載了用用。。
Ⅸ 用電腦製作3D動畫的詳細過程是怎樣的
前端開發看過來,用javascript開發邏輯一樣也能夠3D繪制圖像、開發3D動效,注意,模型本身是需要美工設計。thingjs有自己的模型庫,Unity 3D的商城也上傳不少免費的素材,重要的還是場景搭建和動效開發。
把你的畫面變成一個故事,或者是客戶端要求的3D數據可視化界面,才能產生商用價值。
ThingJS比three.js其他的3D框架,特點有三個:
專注於物聯網3D項目開發
按照場景搭建-3D開發-數據對接-項目部署步驟簡化開發
不需要3D專業知識儲備,只需要懂javascript開發
所以用thingjs製作物聯網3D場景動效,步驟如下:
campusbuilder 3D場景搭建