我是IT的學生,我不得不在VB6的一個項目,我想做出3D軟件渲染,但我真的不知道從哪裏開始,我發現了一些教程,但我想一些深入的數學和算法,我會喜歡的東西,顯示如何使3D轉換,相機,燈光,陰影...3D軟件渲染與VB6
無所謂使用的編程語言,我只需要一些資源告訴我如何做到這一點。
所以我只是想知道在哪裏可以找到一些資源,或者你能告訴我一些源代碼,並告訴我從哪裏開始。
或者如果你們中的任何人對VB6項目有更好的主意。
謝謝。
我是IT的學生,我不得不在VB6的一個項目,我想做出3D軟件渲染,但我真的不知道從哪裏開始,我發現了一些教程,但我想一些深入的數學和算法,我會喜歡的東西,顯示如何使3D轉換,相機,燈光,陰影...3D軟件渲染與VB6
無所謂使用的編程語言,我只需要一些資源告訴我如何做到這一點。
所以我只是想知道在哪裏可以找到一些資源,或者你能告訴我一些源代碼,並告訴我從哪裏開始。
或者如果你們中的任何人對VB6項目有更好的主意。
謝謝。
很多年前,我做了一個陰影三角形渲染器,使用庫調用來繪製三角形。這是一種相當天真的方法,但使用VB6可以達到相同的效果。我從Foley等人的「計算機圖形學原理和實踐」中獲得了所有的數學算法&。一些零件現在已經過時了,但我認爲你會發現它對這個項目非常有幫助,例如它可以以合理的價格從亞馬遜購買。
一個簡單的方法可能是:
這涵蓋了線框查看。要將其擴展到隱藏表面去除,您需要確定哪些三角形在前面。兩種可能的方式:
之後,你還需要一些基於照明的陰影。這些計算在計算機圖形學原理和實踐中涵蓋。對於簡單陰影,您可以使用gdi繪製三角形,但如果要繪製陰影或phong陰影,則顏色值會跨三角形變化。解決這個問題的方法之一是將三角形細分爲更小的三角形,但效率不高,不會給出非常好的結果。更好的做法是按照上面對軟件深度緩衝區的要求自己繪製三角形。
一個很好的擴展將是支持三角形以外的基元。基本的方法是在你閱讀它們時將基元分解成三角形。
祝你好運 - 可能是一個有趣的項目。
感謝您提供的信息,我將搜索這本書,看看我能否在那裏找到答案。 – Andrei 2009-11-14 16:00:04
VB6不是最適合的語言是做數學和3D圖形,並考慮到你有沒有對上述以前的知識要麼,我會建議你選擇一些不同的(容易)。
因爲它是Visual Basic,所以你可以嘗試更多面向窗體的東西,那就是語言的原意。
是的,我知道,但我需要在VB6中完成這個項目,而且我必須使用很多算術和數學,所以我想不出其他任何東西。 – Andrei 2009-11-12 17:49:42
作爲一個整體項目的3D軟件渲染器是相當複雜的,如果你以前從未做過。我會建議更小的東西 - 比如只做3D部分並使用線條進行渲染,或者只寫一個陰影三角形渲染器(無論如何都是3D渲染器的基礎)。
簡單的東西一點點,而不是試圖寫在第一次就一個完全成熟的3D軟件渲染器 - 尤其是在VB。
我並不需要製作完整的3D軟件渲染器,但至少需要有相機,燈光,陰影和轉換。 – Andrei 2009-11-12 18:00:15
軟件渲染器是一個非常困難的項目和語言VB6完全不顯示(像該類別中的一個任務++的方式..),反正我可以建議你我使用了一些偉大的著作:
還有其他2本書。即使他們是VB.NET,你可以找到一些有用的代碼:
非常感謝,我知道C++是最好的,但我必須使用VB6。我會檢查這本書的。 – Andrei 2009-11-12 17:58:30
我以前的職位不同意,一個3D渲染其實是非常簡單的。然而,高質量的3D渲染器很難。
現在你將失去一個深度緩衝區,所以在開始時堅持線框。 :-)
不要聽這些可以說話的人,出去玩得開心!
還有就是3D engine list其中列出了三個發動機以純的鹼性(一個矛盾)+源代碼和它們中的一個是在Visual Basic(Dex3D)
DeX3D是一個開源3D引擎 完全在編碼Visual Basic從 Jerry Chen([email protected])。
- 高洛德着色
- 透明度
- 起霧
- 全方位和射燈
- 分層齧合
- 粒子系統
- 支持三維工作室文件
- 貝塞爾曲線段
- 2.5 d文本
- Visual Basic源
的更多信息,屏幕截圖和 源可以在Dex3D 主頁上找到。 (< =死鏈接)
是的,我找到了早期版本的源代碼,我會嘗試看看它是如何工作的。 – Andrei 2009-11-12 18:17:04
我認爲你可以採取兩種方式,直接X的方式,並使用DirectX 8具有VB 5-6的支持。我發現了一個頁面http://www.gamedev.net/reference/articles/article1308.asp
你可以隨時編寫一個引擎組,但通過這樣做,你將需要像Frank Krueger所建議的一些基本的線性代數。
我想使我的項目不使用DirectX和其他3D引擎,我想從基本代碼開始做一些事情,但如果我不能,我一定會嘗試使用DirectX,否則我會嘗試製作矢量繪圖應用程序。 – Andrei 2009-11-12 18:32:06
EGL25作者:Erkan Sanli是一個快速開源的VB 6渲染器,可渲染,旋轉,動畫等由數千個多邊形組成的複雜實體形狀。只是Windows API調用 - 不支持DirectX,不支持OpenGL。
alt text http://www.vbmigration.com/Documentation/Images/sample/EGL25.jpg
VBMigration.com chose EGL25作爲一個高品質的開源項目VB6證明他們VB6到VB.Net升級工具。
我只是好奇他們爲什麼要使用VB6? – bytebender 2009-11-12 17:45:30
哪個虐戀大學在其課程中仍然有VB6? – 2009-11-12 17:46:58
其實我寫了一篇關於在VB6中實現3D渲染器的文章。我永遠把它發佈到CompuServe。如果你有權訪問舊的CompuServe論壇,你應該查看它。 :-) – 2009-11-12 17:50:25