原创 Xcode+Opengl學習(9)利用Uniform配置自己的着色器

Glint glGetUniformLocation(GLuint shaderID,const GLchar* varName) void glUniform4fv(Glint location,GLuint count,GL

原创 Xcode+Opengl學習(4)利用矩陣使一個矩形邊下降邊旋轉

利用矩陣函數完成平移、旋轉、縮放、綜合變換 m3dTranslationMatrix44(M3DMatrix44f m, float x, float y, float z) m3dRotationMatrix44(M3DMat

原创 Xcode+Opengl學習(7)紋理設置

紋理基本設置 剛接觸紋理,很多函數不會用,定義也記不住,多用幾遍自然就好啦。 #include<GLTools.h> #include<GLMatrixStack.h> #include<GLFrame.h> #include<

原创 Mac下Opengl讀取tga紋理(藍寶書readtga函數不能用)

話不多說,直接上函數 GLbyte *ReadTGABits(const char *szFileName, GLint *iWidth, GLint *iHeight, GLint *iComponents, GLenum *e

原创 Xcode+Opengl學習(6)管理管線與照相機相關設置

利用的類 GLFrame GLGeometryTransform GLMatrixStack 使用方法 GLMatrixStack modelViewMatrix; GLMatrixStack p

原创 Xcode+Opengl學習(11)ADS光照模型

光照模型 ADS代表環境光(Ambient)、漫射光(Diffuse)、鏡面光(Specular)。 環境光 環境光所照射的物體在所有方向的表面都是均勻照亮的,我們可以把環境光看成應用到每個光源的全局照明因子。 vVary

原创 Xcode+Opengl學習(12)紋理+光強

將環境光的強度與漫射光的強度之和與紋理顏色相乘,再加上鏡面光的部分。 .vp attribute vec4 vVertex; attribute vec3 vNormal; uniform mat4 mvpMatrix; u

原创 Xcode+Opengl學習(12)ADSPhong

上篇所述ADSGouraud着色會使鏡面高亮部分有閃爍,這是由於三角形之間的不連續造成的,這種不連續則是由顏色值在空間中進行的是線性插值導致的。這些亮線實際上是相互獨立的三角形之間的縫隙。 有一種方法可以減弱這種現象,叫做Phon

原创 Xcode+Opengl學習(5)使一個花托以一定速度旋轉

本篇繼承上篇的矩陣變換知識,加上了利用CStopWatch類來定義速度的思路 static CStopWatch rotTimer; float yRot=rotTimer.GetElapsedSeconds()*30; m3d

原创 Xcode+Opengl學習(13)丟棄片段用法——消散discard

.vp #version 120 attribute vec4 vVertex; attribute vec3 vNormal; attribute vec2 vTexCoords0; uniform mat4 mvpM

原创 Xcode+opengl學習(2)點線面環基本渲染過程

基礎繪製篇 點GL_POINTS 線GL_LINES 線帶GL_LINE_STRIP 線環GL_LINE_LOOP 4個三角面組成的四面體GL_TRIANGLES 6個三角面組成的面扇(中心點拔高)GL_TRIANGLE_FAN

原创 Xcode+opengl學習(1)繪製第一個三角形

創建一個紅色三角形,瞭解opengl渲染流程 #include<GLTools.h> #include<GLShaderManager.h> #include<GLUT/GLUT.h> #define FREEGLUT_STATI

原创 Xcode+Opengl學習(10)點光源漫反射

光強確定 要確定一個指定頂點上的光線的強度,需要兩個向量,一個是向量是光源的方向,用視覺座標光源位置減去定點位置確定;另一個向量是表面法線,注意兩個向量都要是單位向量。兩個向量點乘,會得到兩向量夾角的餘弦值,餘弦值越大,說明光照強

原创 Xcode+opengl學習(3)顏色混合的理解應用

**目標顏色**:已經儲存在顏色緩衝區中的顏色值 **源顏色**:作爲當前渲染命令的結果進入顏色緩衝區的顏色值 本篇主要介紹源顏色和目標顏色的混合 如: GLfloat vRed[]={1.0f,0.0f,

原创 Xcode+Opengl學習(8)高級——使用自己的着色器

利用GLSL 我的Xcode版本version130打不開,所以改了.vp和.fp文件 .vp #version 120 attribute vec4 vColor; attribute vec4 vVertex; vary