????上一章我們學(xué)習(xí)了OpenGL環(huán)境搭建,如果還沒有搭建好環(huán)境的同學(xué)可以點擊這里進(jìn)行查看,步驟很詳細(xì),有對應(yīng)資源.
? ? 好激動啊,了解了這么多概念終于開始敲代碼了- .-
我們從最基礎(chǔ)的開始,首先我們思考一下怎么將一個三角形繪制到屏幕上.
1.我們需要在我們創(chuàng)建的main.cpp文件里面重寫main函數(shù)如下
2.在main初始化GL庫 ??glutInit(&argc, argv);
3.初始化緩沖區(qū)窗口,并且指定模型(就是告訴系統(tǒng)我們需要什么樣的一個顯示渲染內(nèi)容的窗口)
4.注冊回調(diào)函數(shù),函數(shù)名可以隨便起 changeSize 是當(dāng)窗口大小發(fā)生變化時回調(diào)的函數(shù),RenderScene是當(dāng)需要刷新渲染內(nèi)容的時候調(diào)用,這兩個函數(shù)實現(xiàn)都是我們自定義的.
5.判斷當(dāng)前環(huán)境是否可用,并且開啟主線程RunLoop
????上面步驟都在main函數(shù)里執(zhí)行,其中setupRC()是我們自定義的一個函數(shù),主要是配置需要展示的圖形信息實現(xiàn)如下
1.主要工作是通過glClearColor創(chuàng)建一個顯示窗口病置頂背景顏色2.初始化shader(渲染)管理類3.指定頂點坐標(biāo)(這里的范圍是-1到1,以后我們實用的范圍也會是這個范圍)
triangleBatch?簡單的批次容器冰肴,是GLTools的一個簡單的容器類。
triangleBatch.Begin(GL_TRIANGLES, 3)GL_TRIANGLES為頂點連線方式,就是假設(shè)我們有三個頂點ABC ,我們的連線是A->B->C呢還是A->C->B還是C->B->A呢 ,3 是頂點個數(shù),我們把這些指定的 信息放入triangleBatch容器里面 提交就可以了
這兩個方法首次系統(tǒng)都會主動調(diào)用,如果當(dāng)渲染的數(shù)據(jù)發(fā)生改變時 ?我們可以手動調(diào)用RenderScene進(jìn)行刷新,比如我們的頂點發(fā)生平移,那么這個函數(shù)就會被觸發(fā),我們command+r運(yùn)行
????這些就是三角形渲染的全部代碼了,代碼并不多,代碼順序也都是固定的,重要的是理解整個渲染過程!