tft每日頭條

 > 圖文

 > opengl三維圖形程序設計

opengl三維圖形程序設計

圖文 更新时间:2025-01-26 21:26:16

一、走向3D

三維(3D)表示一個正在描述或顯示的物體具有3個維度:寬度、高度和深度。例如,放在書桌上的一張畫是一個二維物體,因為它沒有可以令人感受得到的深度。而旁邊的藥瓶卻能感受到它是3D,因為它具備高度、深度、寬度。

opengl三維圖形程序設計(3D圖形和OpenGL)1

幾個世紀以來,藝術家們已經知道如何讓一幅畫有立體感并且具有真實的深度。通過顔料在二維畫布上所創作的作品,它其實本質上畫的是一個二維物體。類似,計算機3D圖像實質上也是平面的,它隻是在計算機屏幕上所顯示的二維圖像,但它可以提供深度的錯覺。

2D 透視 = 3D

二、3D圖形技術和術語

  • 光栅化:實際繪制或填充每個頂點之間的像素形成線程
  • 線框渲染是有它的用處,但在大多數情況下我們并不是用線程,而是使用實心三角形渲染。
  • 着色:沿着頂點之間改變顔色值,能夠輕松創建關照照射子啊一個立方體上的效果。另一方面,着色器則是圖形硬件上執行的單獨程序,用來處理頂點和光栅化任務。
  • 紋理貼圖:不過是一個用來貼到三角形或多邊形上的圖片。在GPU上,紋理是快捷有效的。
  • 混合:混合是将不同的顔色混在一起。

三、3D圖形的常見用途

實時3D圖形的應用範圍包括交互式遊戲和模拟以及數據的可視化顯示(供科學、醫學或商業應用);

在個人計算機領域,3D圖形的應用幾乎沒有止境。目前最常見的用途,遊戲、AR、VR,都是基于OpenGL 的。3D圖形在科學是視覺和工程應用中非常流行,物美價廉的3D硬件大量湧現使得這些應用技術空前的流行火爆。

Mac OS X 以及 iOS 都是使用OpenGL對所有窗口和控件進行渲染,從而創建了功能強大,引人入勝的可視化界面。

例如設計時使用的3D max ,還是遊戲制作的Unity 3D,Cocos2D 底層都是使用了OpenGL。而我們醫學上的影像渲染也都依托于OpenGL。

三(1)2D笛卡爾坐标

在二維繪圖中,最為常用的坐标系統是笛卡爾坐标系統。笛卡爾坐标由一個X坐标和Y坐标構成。x坐标測量水平方向的位置,而y坐标則測量垂直方向的位置。

三(2)3D笛卡爾坐标

現在,我們把二維坐标系統拓展到三維空間中,并增加深度分量;在2D笛卡爾标上加一個新軸,z軸。

z軸同時垂直于x軸&y軸。它代表了一條從屏幕的中心朝向你們的直線(我已經旋轉了這個坐标系統的視角,把y軸向左旋轉,把x軸向下和後旋轉。否則,z軸将直接面向我們,無法看到)。現在我們用3個坐标(x,y,z)來指定三維空間中的一個位置。

==深度:通常表示窗口坐标z值;==

四、着色器

在實時計算機圖形中,最前沿的技術是可編程着色器(Programmable Shading)。圖形卡不再是低能的渲染芯片。而是功能強大的高度可編程的渲染計算機。類似CPU的術語GPU應運而生。它代表圖形處理單元,特指當今圖形卡上的可編程芯片。它們是高度并行,并且具有非常快的速度。同樣重要的是,程序員可以進行重新配置圖形卡的工作方式,幾乎可以實現任何可以想得到的特殊效果。

五、3D編程的基本原則

1.并發工具包

OpenGL基本上一種底層渲染API,我們不能告訴它“在什麼地方繪制什麼”--我們需要自己動手,通過載入三角形,應用必要的變化和正确的紋理、着色器并在必要應用混合模式來組合一個模型。這使得我們能夠大量的底層控制,與使用高層工具包,使用OpenGL這樣的底層API動人之處在于,我們不能僅僅是重現許多标準3D渲染,我們可以創造自己的算法,甚至可以去發現一些新的捷徑、性能技巧和藝術視覺技術

2.坐标系統

在OpenGL 或幾乎所有的3D API中創建一個用于繪圖窗口時,必須指定希望使用的坐标系統以及指定的坐标如何映射到實際的屏幕像素。

小結

實際上需要一個物體的2幅畫面從不同角度上感知真正三維空間,我們可以通過透視、隐藏直線消除、顔色、着色和其他技巧來創建深度幻覺。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved