OpenGL

OpenGL超級寶典筆記累積緩沖區與其他顔色操作 2015-10-08

OpenGL超級寶典筆記累積緩沖區與其他顔色操作
累積緩沖區OpenGL除了顔色緩沖區.深度緩沖區.模板緩沖區之外,還有累積緩沖區.累積緩沖區允許你把渲染到顔色緩沖區的值,拷貝到累積緩沖區.在多次拷貝操作到累積緩沖區時,可以用不同方式的把顔色緩沖區內容和當前累積緩沖區的內容進行重複混合.當在累積緩沖區完成一幅圖像之後,可以拷回顔色緩沖區,然後通過SwapBuffers顯示到螢幕上.累積緩沖區的操作通過void glAccum( ...

OpenGL超級寶典筆記現實中的顔色與材料 2015-10-08

OpenGL超級寶典筆記現實中的顔色與材料
現實中的顔色如下圖:我們爲物體構造好了模型,也爲每個平面設置了顔色值,但最終畫出來的物體卻一點都不像真實世界中的物體.在真實世界中物體的表面最終呈現的顔色還取決于你觀察它的角度以及光源.OpenGL提供了近似于真實世界的光照環境.在OpenGl中物體會被三種光照射:環境光,漫放射光,鏡面光.通過調整這三種光源的屬性,我們可以使得物體看起來更真實.環境光環境光沒有特定的方向.環境 ...

OpenGL超級寶典筆記混合 2015-10-08

OpenGL超級寶典筆記混合
混合在正常情況下,OpenGL渲染時會把顔色值輸入到顔色緩沖區中,深度值輸入到深度緩沖區中.如果我們關閉深度測試,那麽新的顔色值會簡單地覆蓋已經存在于顔色緩沖區中的值.當開啓深度測試時,顔色段只有在通過深度測試時,才會覆蓋已經存在于顔色緩沖區中的值.在這兩種情況下,在渲染時顔色值要麽完全被廢棄,要麽就直接覆蓋舊的顔色值.現在介紹一種新的方式,混合.glEnable(GL_BLE ...

Ubuntu 12.04 下 OpenGL環境配置 2015-10-06

    由于最近的工作是基于OpenGL的,所以裝完ubuntu之後首先想到的也就是將OpenGL的環境配好.     借鑒了CSDN上的一篇博文<ubuntu下安裝OpenGL> , 首先在命令行下輸入下面的命令,安裝opengl相關的一些軟件: sudo apt-get install mesa-common-dev mesademos libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev     我將這段命令複制粘貼,並回車之後得到錯誤,說 E:

OpenGL es2.0 API介紹 2015-10-06

1.void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride,const GLvoid * pointer);         該函數用來爲頂點著色器中的輸入參數配置合適的值.        第一個參數index:聲明這個參數的名稱.用glGetAttribLocation取得,再賦給它.        第二個參數size,定義這個參數由幾個值組成

你了解OpenEXR嗎 2015-10-04

 原文地址:http://www.x-graf.com/2012/07/more-about-exr/ 很多人對 OpenEXR 這種圖像格式的了解僅限于:它是 32bit 的,它可以支持多通道,VFX 公司都在使用 EXR.這些都沒錯,但如果你的渲染器生成的是 tile 方式的多通道 EXR,則會降低 Nuke 的合成的效率. Tile vs. Scanline     很多人都不知道在輸出 EXR 文件的時候有兩種方式:tile 和 scanline,而 Nuke 讀取圖像是以 scan

CodeBlocks中的OpenGL 2015-10-03

1. MacOS中: MacOS默認集成了OpenGL,在codeblocks中只需要create new project,選擇glut project即可,codeblocks會自動生成一個main.c文件,點擊編譯運行,即可成功運行出現界面: 2. Window環境: windows環境配置稍微複雜些 (1)下載codeblocks,最好是帶mingw的版本,不然則要自己配置mingw: (2)下載GLUT bin文件 http://www.xmission.com/~nate/glut.h

digital differential analyzer DDA算法 2015-10-03

DDA算法 雖然是大家不以爲然的小算法,但對于我這個大一學生來看還是蠻新鮮的. 我所做的是C++中的openGL實現的,僅僅是換了個環境實現,所以就不多解釋了,下面將代碼貼出來.  //digital differential analyzer //取整 int round(const float a) { return int(a + 0.5); }; void DAA (int x0, int y0, int xEnd, int yEnd) { int dx = xEnd - x0; int

vc+opengl編程unresolved external symbol 報錯處理 2015-10-02

做Computer Graphics課的實驗時,編譯時總報如下錯誤:unresolved external symbol [email protected] external symbol [email protected]方法,方法如下在#include glut.h之前加入以上代碼:#define GLUT_DISABLE_ATEXIT_HACK 如:正確用法#include stdafx.h#

OpenGL學習之材質RGB值和光源RGB值關系 2015-10-02

 材質的顔色與光源的顔色有些不同.對于光源,R.G.B值等于R.G.B對其最大強度的百分比.若光源顔色的R.G.B值都是1.0,則是最強的白光:若值變爲0.5,顔色仍爲白色,但強度爲原來的一半,于是表現爲灰色:若R=G=1.0,B=0.0,則光源爲黃色.對于材質,R.G.B值爲材質對光的R.G.B成分的反射率.比如,一種材質的R=1.0.G=0.5.B=0.0,則材質反射全部的紅色成分,一半的綠色成分,不反射藍色成分.也就是說,若OpenGL的光源顔色爲(LR.LG.LB),材質顔色爲(MR

DirectX11學習筆記 2015-09-30

      一.如果圖元每個定點的顔色都不同,那麽圖元表面的顔色將由每個定點的顔色通過線性插值來賦予,這被稱爲高洛德著色(Gouraud Shading),也叫平滑著色:     二.三維圖元:Direct3D中,使用三角形組成大多數的多邊形,因爲三角形的三個頂點一定是共面的:應用程序可以用三角形組合成大而且複雜的多邊形及網格(mesh);     三.頂點緩存(Vertex Buffer): Direct3D 中,所有傳遞給顯卡的數據都是以緩存的形式存放的,頂點的相關信息也不例外,其中存放頂點

linux下opengl的安裝with qt 2015-09-30

sudo apt-get install build-essentialsudo apt-get install libgl1-mesa-devsudo apt-get install libglu1-mesa-devsudo apt-get install freeglut3-dev qt的.pro文件添加:LIBS += -lglut  \-lGL

three.js 源碼注釋一./Three.js 2015-09-30

 俺也是剛開始學,好多地兒肯定不對還請見諒.以下代碼是THREE.JS 源碼文件中./Three.js文件的注釋.更多更新在 : https://github.com/omni360/three.js.sourcecode/** *注釋翻譯:侯春雷 Email:[email protected]*/ var THREE = { REVISION: '68' }; //生命全局對象THREE,添加版次信息:68版. // browserify support /******Browserify 通過預編

爲什麽調用glPushMatrix()和glPopMatrix() 2015-09-30

今天忽然感悟到爲什麽在進行變換之前要用glPushMatrix();這個函數,而在變換完畢後有用glPopMatrix()這兩個函數了,趕緊記下來:     我們在變換坐標的時候,使用的是glTranslatef(),glRotaef()等函數來操作,操作的是什麽呢?操作的是當前矩陣,我們也知道,這些坐標變換(翻轉,旋轉也好)都是通過操作矩陣來實現的,而矩陣相乘是會疊加的,當你用完一個變換函數後,當前操作的矩陣就被改變了,當你還停留在變換以前的思維,我在這個地方繪制恰好是我想要的時候,你會發現再

Android OpenGL學習足迹一些重要的函數 2015-09-30

一,兩種投影方式:1.GL10.glFrustumf(float left, float right, float bottom, float top, float zNear, float zFar),    該函數爲設置透視投影,其中left和right爲視口左右側對應的x坐標,bottom和top爲視口上下側對應的y坐標,zNear和zFar爲可視空間區域最近和最遠的z坐標.2.GL10.glOrthof(float left, float right, float bottom, flo

3D圖形學視錐剔除入門(翻譯) 2015-09-29

3D圖形學視錐剔除入門(翻譯)
原文:http://www.flipcode.com/archives/Frustum_Culling.shtml 時至今日,許多剛剛下海的3D引擎程序員仍不了解視錐剔除(Frustum Culling)的重要性和益處,這讓我和我的小夥伴們感到很震♂驚.我在Flipcode的論壇中發現盡管網路上有海量的相關資料,仍有許多人提出對視錐剔除實現的問題.因此我決定撰寫這篇文檔,簡單描 ...

OpenGL超級寶典筆記顔色 2015-09-29

OpenGL超級寶典筆記顔色
什麽是顔色顔色只是某種波長的光.現實中我們看到幾乎都是由許多不同類型的光組合而成的.波長是光波相鄰的波峰或相鄰的波谷之間的距離.人肉眼可見的光波的波長位于390nm(紫色光)到720nm(紅色光)之間.紫外線和紅外線都是人肉眼不可見的光.事實上白色和黑色並不是一種顔色.黑色是沒有顔色,因爲可見光都被材料吸收了.而白色則是材料均勻的反射各種波長的光.光即是波也是粒子(波粒二象性) ...

OpenGL生成輪廓 2015-09-29

OpenGL生成輪廓
有時我們不需要物體的許多細節,而只需要其外圍的輪廓來描繪物體大概的形狀比如物體的陰影.如果我們簡單的使用線框模式繪制一個立方體如下:下面介紹OpenGL生成輪廓的兩種方式.多邊形偏移多邊形偏移是一個挺有用的技巧,有時會用來解決z-fighting.z-fighting在開啓深度測試時,如果兩個重疊物體的深度值非常接近,那麽就有可能會産生z-fighting(因爲在繪制物體時采用 ...

openGl學習 2015-09-29

openGl學習
OpenGL(Open Graphics Library)定義了一個跨編程語言,跨平台的編程接口規格的專業的程序接口,用于三維圖像(二維也可以),功能強大切調用方便的底層圖形庫.OpenGL的特性:與C語言緊密結合:OpenGL命令最初就是用C語言函數進行描述的,對于學習過C語言的人來講,OpenGL是容易理解和學習的.強大的可移植性:微軟的Direct3D雖然也是十分強大的圖 ...

OpenGL preload 2015-09-29

OpenGL的予載入會影響效能? 一些信息: http://source.android.com/devices/tuning.html Used to enable/disable preloading of EGL/GL drivers in Zygote at boot time.  When this property is set to false, Zygote will preload the GL drivers by invoking eglGetDisplay(EGL_DEF
一周排行
  • MySQL啓用SSD存儲 有時OS讀寫慢會降低MySQL伺服器的效能,尤其是OS與MySQL使用同一磁盤時.故最好是讓MySQL使用單獨的磁盤,能使用SSD更好.要做到這一點,需要把SSD新磁盤挂載到伺服器上,假定新 ...
  • 策略模式的結構 策略模式是對算法的包裝,是把使用算法的責任和算法本身分割開來,委派給不同的對象管理.策略模式通常把一個系列的算法包裝到一系列的策略類裏面,作爲一個抽象策略類的子類.用一句話來說,就是:"准備 ...
  • <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.o ...
  • for(Result row:table.getScanner("fam1".getBytes())){ // System.out.format("ROW\n", new S ...
  • 大數據讀書彙--獲獎名單公布(已完成)
    第六屆中國雲計算大會(大數據讀書彙)讀書彙介紹第六屆中國雲計算大會于2014年5月 ...
  • 此教程是marquee實現無間隙左右滾動的例子, 非常的方便其中:marguee--滾動命令 後面的是參數 behavior--設定卷動方式 alternate--交替來回卷動 direction="rig ...
  • Windows 64位 連接Access數據庫未發現數據源名稱並且未指定默認驅動程序的解決辦法
    ‍‍‍‍‍‍‍‍ 查看某浏覽器控件的demo時,發現使用的是Access數據庫,驅動找不到 ...
  • 這句話一語中的:好的軟件都是源自解決開發者的切身之痛,推而廣之則是因爲很多人也面臨著相同的困擾.這將我們帶回了"格言1",或許換個角度重申能讓其更具效用:18.要解決有趣的問題?那就先找到你感興趣 ...
  • Sybase ASA (11及以後版本)中獲取表定義的SQL語句及SP
    ASA功能本來非常強大, 可是不理解爲什麽沒有一個功能強大的描述一個表定義的簡單的SQL語 ...
  • java文件的編碼必須是UTF-8縮進必須使用空格而不是tab對于有特殊轉義表示的字符(\b, \t, \n, \f, \r, \", \', \\),禁止使用其它等價轉義方式.例如\012或者\u00a表 ...