【openGL】关于画点】的更多相关文章

#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math.h> #include <stdio.h> const GLfloat PI = 3.14159265357f; void myDisplay(void) { GLfloat a = / ( - * cos( * PI / )); GLfloat bx = a*cos( * PI / );…
#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math.h> #include <stdio.h> ; const GLfloat R = 0.5f; const GLfloat PI = 3.24250265357f; void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(G…
编写一个程序,该程序运行时可以用鼠标的一个按键调整立方体的方向,用另一个按键平移立方体,用第三个按键缩放立方体. 这是题目,我的程序不一定完全按照这个来.初学OpenGL,对那一堆坐标系表示十分混乱,慢慢看吧,有点头绪了. (一) #include <gl/glut.h> #include <math.h> #define GL_PI 3.1415f GLfloat xRot = -35.0f; GLfloat yRot = 15.0f; GLfloat xMov = 0.0f;…
#include "iostream" #include <GL/glut.h> #include<cmath> #include<vector> #include<algorithm> #include<fstream> #include "MatrixV.h" #define PI acos(-1) using namespace std; #pragma comment(lib, "lega…
近期由于兴趣所向.開始学习OpenGL绘图. 本文以"画球体"为点,小结一下近期所学. > 初识OpenGL ES 接触OpenGL是从Android開始的.众所周知,Android View 是线程不安全的,于是仅仅同意在主线程中对View进行操作.然而假如我们须要实现复杂的界面.特别是开发游戏,在主线程中画大量图像,会耗费比較长的时间.使得主线程没能及时响应用户输入,甚至出现ANR. 于是Android提供了一个 SurfaceView类,通过双缓冲机制(两块画布?三块画布?…
#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math.h> #include <stdio.h> const GLfloat factor = 0.1f; void myDisplay(void) { GLfloat x; glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINES); glVertex2f(…
#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math.h> #include <stdio.h> using namespace std; void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); //glRectf(-0.5f, -0.5f, 0.5f, 0.5f); glBegin(GL_LI…
http://blog.csdn.net/yexiaozi_007/article/details/7978620 以画xyz坐标轴为例,很多人会遇到用glcolor设置了颜色,但是直线画出来还是黑色或者白色的情况,这可能是因为没有打开GL_COLOR_MATERIAL,或者没有关闭GL_TEXTURE_2D glEnable(GL_DEPTH_TEST); glLineWidth(3.0f); glEnable(GL_COLOR_MATERIAL); float axes_length = 0…
CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一个不错的突破口. 本文通过阅读.翻译和扩展(https://www.opengl.org/wiki/Rendering_Pipeline_Overview)的方式,来逐步回顾总结一下OpenGL渲染管道,从而串联起OpenGL的所有知识点,并期望能在更高的层次上有所领悟. 另外,(https://w…
OpenGL快问快答 本文内容主要来自对(http://www.opengl.org/wiki/FAQ)的翻译,随机加入了本人的观点.与原文相比,章节未必完整,含义未必雷同,顺序未必一致.仅供参考. +BIT祝威+悄悄在此留下版了个权的信息说: 名词术语 渲染:等于"画",等于"draw". OpenGL是什么? OpenGL是Open Graphics Library(开源图形库)的缩写.它是一本说明书,是一个PDF文件.它写的是渲染三维图形所使用的API(App…
在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> 世界坐标变换 ->观察坐标变换->背面消除->光照->裁剪->投影->视口计算->光栅化,程序员只需要调用固定的api修改一些配置参数就可以完成整个渲染流程了.而到了2.0,固定管线改成了可编程管线,我们对整个渲染流程可以再编程,没有固定的api给你调用,一切都依靠…
我想实现的一个场景是:一个立方体,相机的坐标在立方体的中心点,相机不变,立方体旋转,可以站在立方体中心点查看立方体内部. 实际上就是立方体图像,这是在全景图片当作比较简单的方式,画面不会变形和扭曲,但是现在拍摄的全景图不会这样拍摄,更多的可点击先搞清楚全景视频是如何实现的查看 其实就是当下炒得火热的VR视频,而现在呢简单一些,查看全景图片,VR和全景是有区别的,可以去了解下一张图看懂360°全景和VR的区别 我们接下来全景图片,关于相机坐标和事物坐标,貌似都指向了下面几个函数: 1.观察变换函数…
glScalef是openGL中的模型缩放函数,就是把当前矩阵与一个表示延各个轴对物体进行拉伸.压缩.反射的矩阵相乘.这个物体的每个点的x,y,z坐标与对应的xyz参数相乘. 先看函数定义void glScalef(GLfloat x,   GLfloat y,   GLfloat z); 参数x,y,z分别为模型在x,y,z轴方向的缩放比. 例如:如glScalef(2.0f,3.0f,4.0f);将模型按x,y,z方向分别拉伸了2,3,4倍.参数也可取负数,也可以理解为先关于某轴翻转180°…
OpenGL的glTranslatef平移变换函数详解 glTranslated()和glTranslatef()这两个函数是定义一个平移矩阵,该矩阵与当前矩阵相乘,使后续的图形进行平移变换. 我们先看定义:void glTranslated(GLdouble x,    GLdouble y,    GLdouble z); void glTranslatef(GLdouble x,   GLdouble y,   GLdouble z); 参数说明:x,y,z:分别指定沿x,y,z轴方向的平…
OpenGL的glRotatef旋转变换函数详解 先看一下函数定义:void glRotatef(GLfloat angle,  GLfloat x,     GLfloat y,     GLfloat z) angle:为旋转的角度,单位为度.x,y,z:为对应xyz轴的布尔值变量. 重点是x,y,z表达的是什么意思呢?应该如何取值?如果说x,y,z表达的是一个坐标(x,y,z),那么这个函数就说明了当前几何图形围着这个坐标点旋转. 但往哪个方向旋转呢?所以很明显,x,y,z表达的意思并不是…
OpenGL的glClearColor和glClear改变背景颜色 结合以下两个函数void glClearColor(GLclampf red,    GLclampf green, GLclampf blue, GLclampf alpha); 和 void glClear(GLbitfield mask); 前一个函数设置好清除颜色,后者利用前一个函数设置好的当前清除颜色设置窗口颜色 例如代码: #include <stdio.h> #include <gl/glut.h>…
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第十九课:粒子系统 粒子系统: 你是否希望创建爆炸,喷泉,流星之类的效果.这一课将告诉你如何创建一个简单的例子系统,并用它来创建一种喷射的效果. 欢迎来到第十九课.你已经学习了很多知识,并且现在想自己来实践.我将在这讲解一个新命令.…
前言 OpenGL ES是Khronos Group创建的一系列API中的一种(官方组织是:http://www.khronos.org/).在桌面计算机上有两套标准的 3DAPI:Direct3D和OpenGL.Direct3D实际上是运行在windows操作系统上的标准3DAPI,而OpenGL则是跨平台的, 适用于Linux.多种UNIX.MAC OS X和windows.由于OpenGL得到了广范围的认可,所以,基于嵌入式的3DAPI---OpenGL ES也就应运而生. 沃Phone使…
opengl opengl是一个由Khronos组织制定并维护的规范(Specification) .是一系列的图形软件编程接口,和gdi类似.opengl有很多封装的库最有名的GLFW库.接下来很多东西以GLFW 为例子来说明一些api的使用问题,但这并不影响opengl本身的逻辑表述. 状态机 OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行.OpenGL的状态通常被称为OpenGL上下文(Context).我们通常使用如下途径去…
一.工具的安装 因为要写C++程序,为了便捷,这里我安装的Visual Studio: 免费使用90天!安装好了之后,我们要为我们的开发安装相应的工具集: 因为我是要在windows上跑的,所以选择如下两个包: 选择完之后进行安装(3.7个G) 二.辅助头文件 因为我们要用openGL来画图形,所以要使用到界面工具,这里采用GLUT(<opengl编程指南第八版>用的是glut): 相关包请自行百度: 接下来就是5个文件的放置了: ①.h头文件(在这里指glut.h) ②.lib包文件(在这里…
新建一个脚本,这个物体得挂在有摄像机组件的物体上才能生效 OnPostRender() 这个函数才会被自动调用(类似生命周期自动调用) 然后就可以代码画线了,原理是openGL的画线 using UnityEngine; using System.Collections; using System.Collections.Generic; /// <summary> /// GL画图 /// </summary> public class GLDraw : UnityNormalS…
今天封装了一个Line类.负责在昨天写的窗体上绘制线条. OpenGL画图是通过给glBegin函数设置參数达成的,绘制线条有三个不同的參数: GL_LINES : 绘制连接两个点的线段(绘制的端点位于glBegin函数与glEnd函数之间) GL_LINE_STRIP : 绘制首尾相连的折线 GL_LINE_LOOP : 绘制首尾相连的折线,并在最后将起始点与终点相连接.闭合路径 以下是Line类的代码: /*******************************************…
Cocos2d-X是基于基于OpenGL ES的2D游戏引擎,所以Cocos2d-X能够直接使用OpenGL接口 首先建立一个Draw类,用于处理OpenGL接口 在Draw.h中加入以下的代码 #ifndef _Draw_H_ #define _Draw_H_ #include "cocos2d.h" USING_NS_CC; class Draw : public CCLayer { public: static CCScene* scene(); CREATE_FUNC(Draw…
OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行.OpenGL的状态通常被称为OpenGL上下文(Context).我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲.最后,我们使用当前OpenGL上下文来渲染. 假设当我们想告诉OpenGL去画线段而不是三角形的时候,我们通过改变一些上下文变量来改变OpenGL状态,从而告诉OpenGL如何去绘图.一旦我们改变了OpenGL的状态为绘制线段,下一个绘制命令就会画出线段而不…
说到贝塞尔曲线,大家肯定都不陌生,网上有很多关于介绍和理解贝塞尔曲线的优秀文章和动态图. 以下两个是比较经典的动图了. 二阶贝塞尔曲线: 三阶贝塞尔曲线: 由于在工作中经常要和贝塞尔曲线打交道,所以简单说一下自己的理解: 现在假设我们要在坐标系中绘制一条直线,直线的方程很简单,就是 y=x ,很容易得到下图: 现在我们限制一下 x 的取值范围为 0~1 的闭区间,那么可以得出 y 的取值范围也是 0~1. 而在 0~1 的区间范围内,x 能取的数有多少个呢?答案当然是无数个了. 同理,y 的取值…
1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为你管理retain和release的过程,所以你就不必去手动干预了.忘掉代码段结尾的release简直像记得吃饭一样简单.而ARC会自动在底层为你做这些工作.除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存. 2. 在正确的地方使用 reuseIdentifier 一…
书接上文,昨天装了MinGW,主要原因之一是要用到MSYS,所以顺手把FFMPEG又编译了一遍. 回到主题,其实我是想编译矢量库,因为最近要学习一些计算几何算法,所以找个方便的2D画图库就很重要. 说白了其实是懒得用OpenGL写画几何体代码,画线,AA什么的. 不管怎么说,介绍看的是这篇文章. http://www.cnblogs.com/yanhuiw/p/3885144.html 提到了3个矢量库,因为墙的原因,google的Skia死活弄不下来,所以只写前两个. 首先是AGG,http:…
性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论.然而由于iOS设备的限制,有时搞好性能是一件难事.开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响. 这正是我写下这篇文章的原因.这篇文章以一个方便查看的核对表的形式整合了你可以用来提升你app性能的25条建议和技巧. 请耐心读完这篇文章,为你未来的app提个速! 注意:每在优化代码之前,你都要注意一个问题,不要养成”预优化”代码的错误习惯.时常使用I…
本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_. 性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论.然而由于iOS设备的限制,有时搞好性能是一件难事.开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响.…
本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_. 性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论.然而由于iOS设备的限制,有时搞好性能是一件难事.开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响.…