MAC Cocoa Opengl入门系列教程一(基本图元绘制)
来源:互联网 发布:js委托事件 编辑:程序博客网 时间:2024/04/28 08:24
本章节主要教大家使用opengl绘制基本图元
先看效果图:
:
图一.普通三角形(锯齿明显)
图二. 多重采样三角形(线条平滑)
一.Opengl简单的介绍
1.opengl是什么东西?用它来干什么?也不是一两句话就能说的清楚,建议读者们先去百度搞清楚这些问题。
2.学opengl你要掌握什么知识?
答:首先你要对OpenGL感兴趣,其次掌握一个平台对界面开发,如osx 、ios、 windows 、安卓等平台,liux平台也可以。
对于新手我会推荐以下参考书籍或网络资源:
先读:蓝宝书《OpenGL超级宝典》
其次:红宝书 《OpenGL编程指南》
再次:橙宝书 《OpenGL Shading Language》 GLSL着色语言
网络教程推荐:http://www.yakergong.net/nehe/ (windows下opengl开发教程,例子很多,重在理解)
二.Cocoa 建立opengl工程
1.直接建立"Cocoa Aplication"。
2.在MainMenu.xib文件中拖入一个OpenglView
3.添加一个类OpenGLDrawView, 该类必须继承于NSOpenGLView。
OpenGLDrawView.h
#import <Cocoa/Cocoa.h>@interface OpenGLDrawView : NSOpenGLView@endOpenGLDrawView.m
#import <OpenGL/gl.h> ///加入opengl文件头#import <OpenGL/gl3.h> //#import "OpenGLDrawView.h"@implementation OpenGLDrawView//重写prepareOpenGL方法- (void)prepareOpenGL{ }- (void)drawRect:(NSRect)dirtyRect { [super drawRect:dirtyRect];}
4.OpenGLDrawView关联到xib中到的OpenglView
5.添加OpenGL.framework
"项目"->"build phases"->"Link Binary With Libraries",添加OpenGL.framework.
6.工程配置完毕。
三.代码讲解
//重写prepareOpenGL方法- (void)prepareOpenGL{ glClearColor(0.0, 0.0, 0.0, 1.0);}- (void)drawRect:(NSRect)dirtyRect { [super drawRect:dirtyRect]; glClear(GL_COLOR_BUFFER_BIT); //定义三角形坐标点 static GLfloat vectexs[]={ -0.5,0,0, 0.5,0,0, 0,0.5,0 }; //定义颜色 static GLfloat colors[]={ 1.0,0,0, 0,1.0,0, 0,0,1.0 }; //开启客户端顶点数组绘制功能 glEnableClientState(GL_VERTEX_ARRAY); //开启客户端颜色数组绘制功能 glEnableClientState(GL_COLOR_ARRAY); //指定顶点数组指针 glVertexPointer(3, GL_FLOAT, 0, vectexs); //指定颜色数组指针 glColorPointer(3, GL_FLOAT, 0, colors); //开始绘制 glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_COLOR_ARRAY); glFlush(); // Drawing code here.}这里只讲解glDrawArrays(GL_TRIANGLE_STRIP, 0, 3)的含义,
GL_TRIANGLE_STRIP指的是绘制图形的方式,
0指从顶点数组的0索引开始
3为要绘制的顶点个数。
下面给出GL_TRIANGLE_STRIP等绘制方式等图形表达方式:
四.cocoa项目中开启图形多重采样
1.非常简单,在xib中把opengl view属性中的“sampling”设置一个值就行,如下图所示;
五.以上问题都非常简单,所以呢~!给大家送上几张效果图!
1.三维空间二维图形动画
2.3DMAX导出的关羽模型,3ds格式
3.freetype字体库在opengl中显示字体
0 0
- MAC Cocoa Opengl入门系列教程一(基本图元绘制)
- MAC Cocoa Opengl入门系列教程二(OpenGl坐标系)
- OPENGL 绘制基本图元
- 【OpenGL】绘制基本图元
- 深入了解OpenGL——绘制基本图元
- Apple Mac cocoa入门级教程- HelloWorld!
- Apple Mac cocoa入门级教程- HelloWorld!
- OpenGL基本图元
- OpenGL基本图元
- OpenGL基本图元
- [GEiv]第一章:静态绘制(一) 图元与基本图形
- Nebula3绘制基本图元
- Win32 OpenGL编程(3) 基本图元(点,直线,多边形)的绘制
- OpenGL系统设计-OpenGL基本图元
- opengl 函数库--绘制几何图元
- OpenGL学习笔记--绘制图元
- OpenGL学习笔记之绘制图元
- VC++下OpenGL的配置和OpenGl基本图元—点和线的的绘制
- socket通信介绍
- UINavigationController和UINavigationControllerDelegate
- Simulink学习笔记5--Simulink仿真设置
- spring MVC边用边用
- 设计模式读书笔记-----适配器模式
- MAC Cocoa Opengl入门系列教程一(基本图元绘制)
- 【百金轻】:不走寻常路
- 【实验六】定时器中断实验
- 不要做浮躁的人——转给即将上路或者正在路上的程序员朋友
- 简述下一代mapreduce,yarn或者说是mrv2
- Nhibernate中enum属性映射问题
- eclipse如何将中文版转换成英文版
- Android拍照并保存(对图片进行压缩,分解)
- ASCII、Unicode、GBK和UTF-8字符编码