OpenGL默认屏幕坐标系原点在哪? [问题点数:20分,结帖人lovec001]

Bbs2
本版专家分:144
结帖率 98.16%
Bbs5
本版专家分:2279
Bbs2
本版专家分:166
Bbs5
本版专家分:2447
Blank
Github 绑定github第三方账户获取
Blank
红花 2010年5月 专题开发/技术/项目大版内专家分月排行榜第一
2010年4月 专题开发/技术/项目大版内专家分月排行榜第一
Blank
黄花 2010年1月 专题开发/技术/项目大版内专家分月排行榜第二
2009年12月 专题开发/技术/项目大版内专家分月排行榜第二
2009年11月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第二
2009年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年8月 专题开发/技术/项目大版内专家分月排行榜第二
2009年7月 专题开发/技术/项目大版内专家分月排行榜第二
Blank
蓝花 2010年3月 专题开发/技术/项目大版内专家分月排行榜第三
2010年2月 专题开发/技术/项目大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:12
OPENGL设备坐标系(dns)是左手坐标系,屏幕坐标系原点在左下角向上向右增加
OPENGL<em>屏幕</em><em>坐标系原点</em>在左下角向上向右增加,D3D<em>屏幕</em><em>坐标系原点</em>在左上角向下向右增加。 所以glViewPort的从设备坐标系变换到<em>屏幕</em>空间的变换公式为: 使得(-1,-1)到左下角(x0,y0), (1,1)到右上角(x0 + w, y0 + h)。 D3D中设备坐标系变换到<em>屏幕</em>的公式为: Xw = x* w/2 + w / 2 + x0; Yw = -y
坐标:开发中屏幕坐标以屏幕左上角为坐标原点
<em>屏幕</em>坐标系: 开发中<em>屏幕</em>坐标以<em>屏幕</em>左上角为坐标原点。<em>屏幕</em>坐标中向右X坐标增加,向下是Y轴增加。
菜鸡学Unity 之 Unity中的坐标系(世界坐标系和局部坐标系)
LZ-Says:哎呦喂,时间,时间,慢点过~ 前言 Today,一起来了解下在Unity中的坐标系。 首先,我们要清楚的是,在Unity中,坐标系分为俩种: 世界坐标系; 局部坐标系 下面,基于这俩个坐标系做个说明。 一、世界坐标系 世界坐标系,也就是基于我们当前游戏场景而言。先来观察下某个游戏物体的坐标: 分别对应。X、Y以及Z轴。 当然...
Opengl -- 五角星的绘制
#include #include #include const double PI=acos(-1.0); //Pos[2]=五角星坐标,Length=五角星尺寸 void DrawFivestar(GLfloat Pos[2],GLfloat Length) { float Short=Length*sin(0.1*PI)/sin(0.7*PI); float p1[2],p2[2];
OpenGL坐标系及基本变换
转自:https://blog.csdn.net/dcrmg/article/details/53088463 左手坐标系、右手坐标系、笛卡尔坐标系 左手坐标系:伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。 右手坐标系:伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。 左右手...
OpenGL之坐标转换(好文-清晰版)
转自:https://blog.csdn.net/jiashu23/article/details/47864559 (原文博客已被关闭,上面的地址也是转载)   下面这篇文章详细讲述了OpenGL里的坐标转换,清晰,明了。但是其所谓的渲染管线只包括modelview 转换 和 投影变换,我觉得不是这样的。这只是从坐标角度吧。比如什么顶点着色、光栅化、送至帧缓存都没有涉及到。 1. Ope...
opengl 坐标的理解
【目标】:学习OpenGL中的坐标系统。   【参考】: 1、《计算机图形学(OpenGL版) (第三版)》 Francis著 (本文主要涉及第三章~第七章) 2、《计算机图形学(OpenGL版) (第三版)》 Donald著   一、前言         坐标系应该是任何图像系统的基石。在学习Cocos2D的过程中,对着《权威指南》上草草结束的坐标系介绍,实在是看的一头雾水,找了本OpenGL书把
搞晕我的openGL坐标系
OpenGL坐标系 研究任何坐标系(非欧的不清楚),只要把握住以下三点:1、原点;2、坐标轴正方向;3、坐标单位。以下均按照这个思路研究。 1、OpenGL坐标系转换的大致流程一般使用摄像来做比来描述这个流程,Donald书上289页的一张流水线图则从数学上解释了这个流程。两者合并起来是这样的:下面具体说明各个步骤 2、摆放物体(模型变换):局部坐标系 -&amp;gt; 世界坐标系        世界坐...
OpenGL坐标系之间的转换
1. OpenGL 渲染管线OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation)。做个比喻,计算机图形开发就像我们照相一样,目的就是把真实的场景在一张照相纸上表现出来。那么观测变换的过程就像是我们摆设相机的位置,选择好要照的物体,摆好物体的造型。而投影变换就像相机把真实的三维场景显示在相纸...
opengl绘制在屏幕坐标中固定位置的坐标轴模型
1,在时椎体的左下标定义为原点时:在视口发生变化时,scale=min(w,h)/pre(w,h)
MFC中的坐标系--控件的左上角为原点
MFC的以控件的左上角为原点
Android OpenGL20 世界坐标系,屏幕坐标系,纹理坐标系
在  http://blog.csdn.net/qq_31726827/article/details/51265186这一篇大概介绍了坐标系,但是如何应用的呢?并没有特别说明,下面通过测试Sample来说一下. 第一个想说的:世界坐标系,这个坐标很容易,<em>opengl</em> 坐标原点<em>默认</em>给在<em>屏幕</em>中间,一般3D 顶点参照使用这个坐标系,具体参见上面的博客.这里介绍一下着色是如何进行的,工
OpenGL: 屏幕坐标向OpenGL坐标转换
<em>屏幕</em>坐标向OpenGL坐标转换      很多人用OpenGL绘图会遇到一个问题即<em>屏幕</em>坐标向OpenGL坐标转换,在网上流传着如下类似的代码:    注:(x, y)是<em>屏幕</em>坐标,(winX, winY, winZ)是视景体坐标及深度坐标,(posX, posY, posZ是OpenGL坐标。    上述代码并不保险,只针对一种特殊情况才好使,即glViewport(0, 0, screenWidt
Cocos2d-x 详解坐标系统
这篇博文将介绍一下在cocos2dx中的一些坐标系统概念: 一、      (1)OpenGL坐标系 Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系。该<em>坐标系原点</em>在<em>屏幕</em>左下角,x轴向右,y轴向上。 (2)<em>屏幕</em>坐标系 <em>屏幕</em>坐标系使用的是不同的坐标系统,原点在<em>屏幕</em>左上角,x轴向右,y轴向下。iOS的<em>屏幕</em>触摸事件CCTouch传入的位置信
opengl 屏幕 窗口 视口 裁剪区
首先解释下图形学中的<em>屏幕</em>,窗口,视见区(视口),裁剪区。 <em>屏幕</em>:即计算机的整个<em>屏幕</em>大小。 窗口:即<em>屏幕</em>中的某一个窗口,可放大放小和移动关闭。 视口:即在窗口中可以见到或可以用来绘图的部分。一般设置视口等于窗口。 裁剪区:即在视口中让你看到的图形,即显示出来的那部分。
OpenGL场景截取后存储(BMP图片)
变量声明部分 GLenum lastBuffer_OpenGLShot; GLbyte* pBits_OpenGLShot = 0; // 图像数据 unsigned long ImageSize_OpenGLShot; int Width_OpenGLShot, Height_OpenGLShot; bool IsOpenGLShot; SYSTEMTIME m_Syst
OSG坐标系解释????????
对于下面的代码(选自《OSG海军教程》第十课第一节 使用自定义矩阵来放置相机,但数据有更改): tankXform->setPosition( osg::Vec3(0,60,8) ); // 相机位于坦克后方 60个单元,上方 7个单元。 T.makeTranslate(0, 0,15 );//沿Z平移+15 A= R * T;//设R是绕Y轴旋转+20度的矩阵 C= osg::Matr
opengl 默认坐标为[-1,1]
<em>opengl</em> <em>默认</em>的窗口坐标是从 [-1,+1]的,所以当调用glVertex3f()等函数设置的坐标值超过这个范围时将无法显示glBegin(GL_TRIANGLES); glVertex3f(0.0,0.0,0.0); // 0 0 0  glVertex3f(2.0,0.0,0.0); // 2 0 0 glVertex3f(1.0,3.0,0.0); // 1 3 0 glEnd();即:...
获取显示屏的个数和分辨率 --- 通过使用OpenGL的GLFW库
获取显示屏的个数和分辨率 — 通过使用OpenGL的GLFW库程序#include // GLFW #include int main() { // Init GLFW glfwInit(); // Set all the required options for GLFW glfwWindowHint(GLFW_CON
OpenGL学习脚印:深度测试(depth testing)
写在前面 上一节我们使用AssImp加载了3d模型,效果已经令人激动了。但是绘制效率和场景真实感还存在不足,接下来我们还是要保持耐心,继续学习一些高级主题,等学完后面的高级主题,我们再次来改进我们加载模型的过程。本节将会学习深度测试,文中示例程序源代码均可以在我的github下载。 本节内容整理自 1.www.learn<em>opengl</em>.com Depth testing 2.de
OpenGL中的窗口与视口
// 目标:测试OpenGL窗口视口坐标 // 结果:glutInitWindowSize(640, 480); 指定的是windows概念中窗口(看得见,可移动,最大化,最小化等操作)大小,以像素为单位 // OpenGL中的窗口和视口是逻辑上的概念,其中窗口范围是画图时指定顶点坐标使用的坐标,而视口范围是将windows中概念中实际 // 窗口映射成的范围 #defi
关于opengl模型坐标转变为最终屏幕坐标
参考:https://zhidao.baidu.com/question/560324903.html比如如果你设置各个变换的代码是 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslate3f(0, 0, 100); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glViewport(100...
opencv的坐标原点
本来在学习实践另一片文章的时候,不知道opencv的坐标原点<em>在哪</em>里,但是通过猜测原来文章的注释发现,那篇文章所用的坐标原点的应该是在窗口的左上角,有了猜测就需要证明了。于是搜肠刮肚的有了下面的测试代码。 很简单,就是画一个空的窗口,然后准备在上面指定不同的点point来证明坐标原点是在坐上角。下面的代码是先创建一个窗口;import numpy as np import cv2win1=np.ze
Direct/OpenGL 左右坐标系统
通常三维图形应用程序使用两种笛卡尔坐标系:左手系和右手系。在这两种坐标系中,正x轴指向右面,正y轴指向上面。通过沿正x轴方向到正y轴方向握拳,大姆指的指向就是相应坐标系统的正z轴的指向。下图显示了这两种坐标系统。   Microsoft® Direct3D®使用左手坐标系。如果正在移植基于右手坐标系的应用程序,必须将传给Direct3D的数据做两点改变。 颠倒三角形顶
OpenGL: 屏幕坐标到物体三维坐标的转换
直接看代码吧,有注释。 //入参:int x,int y 表示<em>屏幕</em>的坐标 GLint viewport[4] = { 0 }; GLdouble modelview[16] = { 0 }; GLdouble projection[16] = { 0 }; GLfloat winX = 0.0f; GLfloat winY = 0.0f; GLfloat winZ = 0.0f; ...
DirectX之三——渲染管线与坐标系(Direct3D9)
DirectX之三——渲染管线与坐标系(Direct3D9) Direct3D渲染管线   使用Direct3D绘制模型是需要经过一个流程的,这个流程就被称为渲染管线或绘制流水线,渲染管线可分为下列几个流程: 另外需要注意的是:Direct3D采用的是左手坐标系,如下图所示: 局部坐标系   局部坐标就是表示单个模型所需要的坐标,一般以模型的中心来作为局部坐标系的原点。而模型...
关于opencv中图像的坐标原点的区分
转:http://blog.sina.com.cn/s/blog_a5fdbf0101017q8h.html 在opencv中,处理图像的时候,经常需要来按坐标点来获取相应位置的像素,那么这个时候知道坐标原点就显得很重要,如何区分呢?主要是看一个数据结构,那就是IplImage,在这个数据结构中,有一个成员叫做origin,查看其值,就可以知道了,如果origin=IPL_ORIGIN_TL(也...
OpenGL中的投影使用
OpenGL中的投影使用          在OpenGL中,投影矩阵指定了可视区域的大小和形状。对于正投影与透视投影这两种不同的投影类型,它们分别有各自的用途。   正投影          它适用于2D图形,如文本、建筑绘图等。在它的应用场合,我们希望在<em>屏幕</em>上展示准确的物体大小和度量。   透视投影          它使用透视除法,对距离观察者较远的物体
android手机坐标系,原来我一直都没理解透
android手机<em>屏幕</em>的坐标系: 1. 竖屏     <em>屏幕</em>左上角为<em>坐标系原点</em>,坐标系如下:      在<em>屏幕</em>内,坐标都是正值,<em>屏幕</em>范围内最小是0;如果出现负值,那一定是超出<em>屏幕</em>范围了 2. 横屏 横屏的时候<em>坐标系原点</em>仍然是左上角,如下图: 这时候产生疑问,横屏时的坐标系应该有两个,顺时针旋转90度和逆时针旋转90度,对,就应该有两个:
利用OpenGL在屏幕上输出“OpenGL”字样
用OpenGL实用程序工具包中包含了一些预定义的字符库,用来显示点阵和矢量字符。
OpenGL边用边学------2 经典照相机模型
实际照相步骤 1 布置场景和调整照相机位置 3 选择镜头对焦Focus 4 按下快门 5 在电脑窗口中欣赏图片 OpenGL的相机模型 0 确定胶片位置 1 确立场景世界坐标系 2 在世界坐标系中确定相机位置与方向 3 在世界坐标系中建立物理世界模型 4 视图变换与模型变换的抉择 5 在照相机坐标系中确定可视范围对焦投影变换 6 调用glBegin glEnd拍照 OpenGL相机模型与实际相机的
OpenGL在Windows环境下的配置
VC下OpenGL配置以及glut配置 OpenGL官方网站(英文) http://www.<em>opengl</em>.org 下面我将对Windows下的OpenGL编程进行简单介绍。 第一步:选择一个编译环境    现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。但这
OpenGL 学习笔记——帧缓冲与后期处理
原文对应:LearnOpenGL CN-高级OpenGL-帧缓冲。 【1】<em>默认</em>缓冲帧与帧缓冲: 因为计算本身是消耗时间的,所以如果不采用双缓冲,则会出现图像闪烁的现象,有了双缓冲之后,显示前缓冲区,在后缓冲区绘图。然后交替交换显示,只要有一个拷贝的过程,就可以完成绘图。 这个后缓冲区,就是OpenGL(或者DX也是一样)的<em>默认</em>缓冲区。诸如深度测试,模板测试,颜色混合这些,成果通过测试
ArchieOpenGL教程第11课:使用位图字体 在屏幕上显示字体
第十一课A 源代码 图像字体A: 这一课我们将创建一些基于2D图像的字体,它们可以缩放,但不能旋转,并且总是面向前方,但作为基本的显示来说,我想已经够了。 使用位图字体比起使用图形字体(贴图)看起来不止强100倍。你可以随时改变显示在<em>屏幕</em>上的文字,而且用不着为它们逐个制作贴图。只需要将文字定位,再使用我最新的gl命令就可以在<em>屏幕</em>上显示文字了。 我尽可能试着将命令做的简单。你只需要敲入gl
屏幕绘制各种图形,了解Android中OpenGL的使用。
在<em>屏幕</em>绘制各种图形,了解Android中OpenGL的使用:程序实现了: <em>屏幕</em>绘图的方法 Android上OpenGL的使用。 完成三角形和四边形的绘制。
OpenGL之坐标转换(好文-清晰版)(世界坐标和屏幕坐标转换)
下面这篇文章详细讲述了OpenGL里的坐标转换,清晰,明了。但是其所谓的渲染管线只包括modelview 转换 和 投影变换,我觉得不是这样的。这只是从坐标角度吧。比如什么顶点着色、光栅化、送至帧缓存都没有涉及到。原文地址:http://blog.csdn.net/zhulinpptor/article/details/58971021. OpenGL 渲染管线OpenGL渲染管线分为两大部分,模...
使用OpenGL三维场景下,在屏幕固定位置画图
废话闲叙述,直接上代码: //设置为2D投影场景 glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); ////裁剪范围(左, 右, 下, 上)如果不希望变形,裁剪范围要和窗口成比例 ...
opengl 教程(2) 在窗口画点
http://www.cnblogs.com/mikewolf2002/archive/2012/10/23/2736195.html  原文地址:http://ogldev.atspace.co.uk/www/tutorial02/tutorial02.html       通常写OpenGL程序时候,我们都需要glew库,该库包装了OpenGL的各种扩展,便于我们使用。
屏幕坐标向OpenGL坐标转换的问题
 <em>屏幕</em>坐标向OpenGL坐标转换的问题 搬运自我的百度空间   问题困扰我很久了,网上给出了这样一段代码: voidTranslateGL(intx,inty,GLdouble &posX,GLdouble &posY,GLdouble &posZ) {           GLint    viewport[4];         
Android下Opengl ES实现单屏幕双眼显示
Android下利用Oengl ES 实现单<em>屏幕</em>的双眼模式的主要思路,阐述Opengl ES中帧缓存区对象的使用流程
如何设计窗体到屏幕中间
            int width = Toolkit.getDefaultToolkit().getScreenSize().width;            //获取电脑<em>屏幕</em>的长和宽            int height = Toolkit.getDefaultToolkit().getScreenSize().height;           //获取窗体的长与宽     ...
[OpenGL] 基于屏幕空间的轮廓线提取
  概念引入          《Real-time Rendering》一书中介绍了多种轮廓线提取的方式,根据对比以及综合考虑,最终使用了图像空间的方法来实现实时提取轮廓。该方法需要先将场景中的物体信息先渲染到纹理中,对使用延迟渲染的框架非常友好,并且弊端也是多种轮廓线提取方法中比较少的,具体内容可以参照原书的NPR章节。 方法概述           (1) 准备2个颜色缓冲区,1...
OpenGL 顶点,坐标系,纹理坐标
了解坐标系是绘制图形的基础。在使用openGL的场景中,有世界坐标,局部坐标,纹理坐标,和<em>屏幕</em>坐标几种。 openGL 坐标系:
在显示opengl三维场景的屏幕上也就是windows窗体上画线
问题是这样的:一般在MFC项目里的窗体视图上将想要显示的对象显示出来后,还可以在上面画一些图形比如直线三角形而不改变之前已经绘制好的东西。但是mfc项目结合<em>opengl</em>后,也就是将<em>opengl</em>的三位场景通过投影变换显示在窗体视图上之后,在窗体上用鼠标绘制图形就会将已绘制好的ope
[OpenGL] 屏幕后处理:景深效果
开发环境:Qt, OpenGL 立方体纹理是Qt官方教程Cube里自带的纹理。   概念引入        景深是摄像中的术语。相机聚焦后,镜头前远近平面之间的物体能够清晰成像,这一段清晰成像的距离也就是景深,我们可以从下图更直观地理解景深。                为了在绘制中模拟景深这一效果,一个直观的想法是,获取物体和相机的距离,根据这一距离和远近平面的关系,来决定物体...
cocos2d-x使用OpenGL获取屏幕截图
今天就来说说cocos2d-x中使用OpenGL获取<em>屏幕</em>截图吧,因为网上关于cocos2d-x的入门教程非常多,所以我就只写一些用cocos2d-x实现具体功能的文章跟大家分享啦~ 截图在游戏中经常会用到的,像社交分享中啊什么的分享的时候都会带截图的。 OpenGL是通过读取<em>屏幕</em>像素来保存图像的,下面说具体实现(代码中会有必要的注释): void glReadPixels(GLint x,
Android点击屏幕坐标对应OpenGL ES坐标
简单的应用场景如下: 用户点击<em>屏幕</em>,并且在点击的位置生成一个三角形,OpenGL ES的三角形用三个顶点生成,但OpenGL ES的顶点坐标范围为[-1.0, 1.0],这里就存在一个问题,如何将点击<em>屏幕</em>坐标的位置映射到OpenGL ES的坐标中,其实原因很简单,就是将<em>屏幕</em>的x轴坐标比如[0, 1080]映射到[-1.0, 1.0]的范围,这里有个小问题需要注意一下,如果<em>屏幕</em>是1080 * 19
opengl在高DPI屏幕下显示不正常的解决方法.
#include #include #include int width = 800; int height = 600; char *title = "GLFW window"; int main(int argc,char* argv[]){ if (glfwInit() != GL_TRUE) { printf("glfwInit fault");
OpenGL 获取当前屏幕坐标对应的三维坐标,使用很简单glu库中的一个函数
#include #include #include void display(void) { glClear(GL_COLOR_BUFFER_BIT); glFlush(); } /* Change these values for a different transformation */ void reshape(int w, int h) {
FBO离屏渲染技术
接触Android开发不久就接触了离屏渲染的项目,现在搞了快一个月了,终于做出些模样。。。总结一下 1、首先应该清楚Activity的生命周期 加载activity——onCreate()——onStar()——onResume()——activity进入运行状态——(其它activity转入前台)——onPause()——activity进入暂停状态——该activity变为完全不可见——o
OpenGL由屏幕坐标转换三维坐标
1. 由<em>屏幕</em>坐标求出投影面上的三维坐标,因为通常我们用近裁剪面作为投影面,因此我们是求<em>屏幕</em>上点在近裁剪面上的三维坐标,因为近裁剪面的Z坐标是一定的,因此我们只要求出x'和y'就行(x',y',Z),注意这个三维坐标是在相机的视图空间中,此时相机的坐标为(0,0,0),因此我们可以得到视图空间中的一条射线。然后根据此时相机的u,v,w三个世界空间的向量,把射线转换到世界空间坐标系中。这就求出了射线(
屏幕坐标向OpenGL坐标的转换(完整版)
<em>屏幕</em>坐标向OpenGL坐标的转换(完整版)   字号:大 中 小     很多人用OpenGL绘图会遇到一个问题即<em>屏幕</em>坐标向OpenGL坐标转换,在网上流传着如下类似的代码:  GLint    viewport[4];   GLdouble modelview[16];   GLdouble projection[16];   GLfloat  winX,
Cocos2dx 世界、屏幕、openGL、本地等坐标系
Cocos2dx 坐标系
OpenGL ES 相机和视口的基本介绍
       本文内容为在绘制之前,设置相机和投影矩阵的一些基本内容,仅适合初学OpenGL ES的新手观看,如果大神们在浏览时发现了错误,请留言联系本人修改,谢谢。       在绘制图形时(不了解绘制流程的看官可以去查看我的另一篇文章OpenGL ES绘制平面图形流程),onSurfaceChanged中需要设置视口、相机矩阵、投影矩阵。一般运行结果不报错但是<em>屏幕</em>上只有背景色就很有可能是这部分...
opengl中将三维坐标转换到屏幕坐标
OpenGL的通过四个变换,得到的结果就是<em>屏幕</em>上的像素坐标。 前三个变换(Model, View, Projection)都是4x4矩阵,操作对象是四维向量,所以需要把(x,y,z)补上w分量,变成(x,y,z,1)。 然后把前三个变换的矩阵依次左乘到这个向量上,得到的四维向量做齐次除法(所有分量都除以w分量), 然后用其中x和y分量再进行第四个变换(Viewport),就得到<em>屏幕</em>坐标。
openGL中的全局固定坐标系统和局部移动坐标系统
最近在看《openGL编程指南》(红宝石书),
理解OpenGL 裁剪区域和视口
看了好多文章,都不能真正的明白裁剪区域到底是什么。网上找了个例子 #include #include #include #include #include const float PI = 3.1415926; const int WINDOW_WIDTH = 640; const int WINDOW_HE
MFC之OpenGL 屏幕坐标转OpenGL坐标
最近在写一个例子用到了OpenGL,OpenGL的中心点(0, 0)点刚好是我们<em>屏幕</em>的中心点。因为我是需要动态的作图(画点、线、圆、弧...)需要平移 缩放图形,所以我在坐标转换这个问题上卡住了。 鼠标点击<em>屏幕</em>上的一点可以很方便的获得通过OnLButtonDown(),但是把取到的<em>屏幕</em>点转到OpenGL对应点却需要做相应的计算。用到的核心函数是gluUnProject(),如下:...
OpenGL中的屏幕坐标和世界坐标的转换
GLint viewport[4]; GLdouble modelview[16]; GLdouble projection[16]; GLfloat winX, winY, winZ; GLdouble posX, posY, posZ; glPushMatrix(); // 变换要绘图函数里的顺序一样,否则坐标转换会产生错误 glScal
openGL 在shader中得到相对于屏幕的点
在openGL的shader中输入到gl
opengl 指定清除屏幕用的颜色
我们写:glClear(GL_COLOR_BUFFER_BIT);意思是把<em>屏幕</em>上的颜色清空。 但实际上什么才叫“空”呢?在宇宙中,黑色代表了“空”;在一张白纸上,白色代表了“空”;在信封上,信封的颜色才是“空”。 OpenGL用下面的函数来定义清楚<em>屏幕</em>后<em>屏幕</em>所拥有的颜色。 在RGB模式下,使用glClearColor来指定“空”的颜色,它需要四个参数,其参数的意义跟glColor4f相似。
iOS中OpenGL是如何将帧缓冲(frameBuffer)渲染到屏幕上的? OpenGL iOS端渲染流程
iOS中OpenGL是如何将帧缓冲(frameBuffer)渲染到<em>屏幕</em>上的? 对于iOS平台当使用 CAEAGLLayer 来显示OpenGL最终的渲染内容时, OpenGL的内容时如何显示到<em>屏幕</em>上的? iOS如何使用Core Animation层绘制OpenGL ES内容?既通过CAEAGLLayer来显示OpenGL的内容 而不是通过类GLKViewController和GL
OpenGL入门示例1——黑色背景绘制绿色矩形
#include //GLUT是OpenGL实用工具包,自动包含了和,编程时不必再次包含它们。 void display(void) { glClear(GL_COLOR_BUFFER_BIT); //清除所有的像素 glColor3f(0.0,1.0,0.0); //绘制颜色(绿色),函数名glColor3f中的3代表三个参数,f代表参数类型为GLfloat型,下同 glBegi
windows编程之几个坐标,坐标系的概念
利用GDI绘图的时候需要明白几个概念 设备坐标与逻辑坐标的区别,viewPort跟windowsPort的区别 设备坐标跟逻辑坐标 设备坐标包括三种,客户区坐标,窗口坐标,<em>屏幕</em>坐标,它的特点是以左上角为原点,x轴向右递增,y轴向下递增,单位是像素。 逻辑坐标<em>默认</em>情况下跟设备坐标重合,采用像素为单位,但是逻辑坐标的单位并不一定是像素,它可以是具体的物理度量单位,包括mm,inch。我们再绘图的
OpenGL全屏显示
/* fullscreen.c Nate Robins, 1997. An example of rendering OpenGL fullscreen using Win32. Use the mouse to select a mode. Modes that are highlighted in green are modes that
OpenGL ES 之对各种坐标系统的记录理解
上周看了一个斯坦福的关于OpenGL ES的视频,记录一下相关的坐标系。
【OpenGL】Shader实例分析(九)- AngryBots中的主角受伤特效
AngryBots是Unity官方的一个非常棒的例子,很有研究价值。好久之前就研究过,由于例子的内容丰富,一时间不知道从哪入手写文章分析。这一段时间研究shader技术比较多一些,就从shader的这一方面开始吧。首先分析其中的一个<em>屏幕</em>特效:当主角受到攻击时会出现的全屏效果(postEffect),效果如下
OPENGL改变坐标系
这里只是简单讲了如何改变二维情况下的坐标系范围,代码也详细给出了。
[OpenGL] 屏幕空间反射效果
概念引入 <em>屏幕</em>空间反射又称SSR,是SS系列算法之一。该算法基于延迟渲染,也就是说,在动手实现SSR前,需要具备延迟渲染相关的知识,主要包括:G-Buffer相关信息的写入,根据G-Buffer还原出位置、视线向量、法线等一系列信息等。 算法本身的原理非常简单,也就是对于<em>屏幕</em>空间上的物体的每个像素,根据该像素对应的法线和视线信息,求解出反射向...
小BUG:OpenGL无法清屏
清屏代码: glClear(GL_COLOR_BUFFER_BIT || GL_DEPTH_BUFFER_BIT); 实际运行时程序背景还是随机内容,查了许久才发现把缓冲区标志位的“按位或”误写为“逻辑或”, GL_COLOR_BUFFER_BIT || GL_DEPTH_BUFFER_BIT 结果为1,不是个有效缓冲区标志位。 GL_COLOR_BUFFER_BIT :0
使用ReadPixels方法,实现对游戏截取任意位置的屏幕,以及保存和显示截取结果
代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using UnityEngine.UI; public class ReadPixelsCtr : MonoBehaviour {     private int capB
Android屏幕坐标与OpenGL ES视口坐标的转换
在Android <em>opengl</em>编程中,涉及到手指触摸<em>屏幕</em>事件,就不可避免地需要解决两种坐标转换的问题。         先定义类内的全局变量,表示OpenGL所在区域的<em>屏幕</em>宽高。 private int w; private int h;         然后找到重绘的函数,加上一句 w = width , h = height,以获取<em>屏幕</em>宽高。(注意不能直接获取安卓<em>屏幕</em>宽高,它还包
Android OpenGL ES 2.0 屏幕坐标和3D世界坐标转换
背景由于项目中需要用到<em>屏幕</em>坐标和3d坐标相互转换的功能。经过我查询大量资料,发现很多文章都只是说明了OpenGL的坐标系统和坐标变换的过程。并没有实现转换坐标的代码示例。介绍坐标系统的文章很多,请自行百度。下面我说一下实现坐标变换的思路和代码。坐标变换思路在网上查询了很久,有写文章说到OpenGL 有一种拾取方式为射线拾取,是可以获取的<em>屏幕</em>到3D模型坐标之间的转换的。但是我并没有找到代码实现示例。后
MFC之OpenGL 怎么计算投影区域在窗口中的大小
我用的是正交投影gluOrtho2D以纹理贴图的方式显示一张BMP位图,当我滚动鼠标滚轮时位图会缩小放大;我要求的是纹理贴图在窗口中的大小,如红色框大小: 这是我显示图片的代码: //贴图的矩形大小与图片比例一致 #define MAPWIDTH20.0 #define MAPHIGHTGLfloat(20.0 / (1920.0 / 10...
OpenGL多视口变换函数:glViewport使用
OpenGL多视口变换函数:glViewport使用 glViewport是OpenGL中的一个函数。计算机图形学中,在<em>屏幕</em>上打开窗口的任务是由窗口系统,而不是OpenGL负责的 1.功能glViewport在<em>默认</em>情况下,视口被设置为占据打开窗口的整个像素矩形,如图1,窗口大小和设置视口大小相同,所以为了选择一个更小的绘图区域,就可以用glViewport函数来实现这一变换,在
OpenGL ES 屏幕截图之完整实例篇
摘要:最近做一个涂鸦类型的产品,其中用到了涂鸦截屏的功能,因为是OpenGL做的绘制,故不能直接用简单的UIKit方式通过上下文去截屏,传统代码: -(UIImage *)snapshotSingleView:(UIView *)view{ UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0); [v...
屏幕坐标系
<em>屏幕</em>坐标系 三点定义一个三角形。当我们在三维图形学中谈论“点(point)”时,我们经常说“顶点(Vertex)”。一个顶点有三个坐标:X,Y和Z。你可以用以下方式来想象这三个坐标: X 在你的右方 Y 在你的上方 Z 是你背后的方向(是的,背后,而不是你的前方) 这里有一个更形象的方法:使用右手定则 X 是你的拇指 Y 是你的食指 Z 是你的中指。如果你把你的拇指指向右边,食指
OpenGL加载、显示、截图、保存位图文件
1.加载与显示BMP位图文件 位图,有时候也被称之为栅栏图、栅格图,是一种保存着图像每一位像素的格式。姑且这么说吧。以此相对的有矢量图,矢量图是用数学公式保存着每一点、每一条线条的方式来存储图像的。 在windows操作系统中,我们都可以使用微软定义的bmp位图(Bitmap)文件。位图有压缩的,也有没压缩的。我们这里主要看没压缩的。 Bitmap位图文件的结构主要由三部分组
利用OpenGL实现屏幕坐标与世界坐标的相互变换
利用OpenGL实现<em>屏幕</em>坐标与世界坐标的相互变换
实验一  OpenGL图形编程入门
ZZU的学弟学妹们不要抄作业哦~(`Д´) 一、实验目的 1.了解和掌握OpenGL的安装。 2.掌握一个简单的基于OpenGL的C++程序结构。 3.掌握win32程序框架。 4.掌握OpenGL中若干基本图形的绘制。 二、实验内容 1.准备好OpenGL库文件。 Glut32.dll路径为%system root&amp;amp;\SysWOW64。 Glut32.lib路径为PAT...
OpenGL中涉及到的矩阵变换
文章目录1、局部坐标系2、世界坐标系2.1 为什么要用矩阵?2.2 模型矩阵(Model Matrix)3、视图坐标系3.1 视图坐标系的定义3.2 视图矩阵4、投影坐标系5、<em>屏幕</em>坐标系 先看两个问题: 我们有什么?答:模型的初始位置坐标(三维坐标)。 我们要得到什么?答:我想要把模型展示在<em>屏幕</em>上展示的二维坐标(二维坐标)。 从初始位置坐标到平面的二维坐标经过了下面的流程,后面逐一介绍。 1...
解决android opengl es绘制物体屏幕横竖屏切换物体压扁形变以及矩阵相关知识
在android上如果手机<em>屏幕</em>由竖屏切换到横屏,这个时候Ui会发生变化,变形,通常在Android中我们可以通过写不同的xml来适配这种<em>屏幕</em>变化引起的ui布局变化。然而,在<em>opengl</em> es也会存在由于<em>屏幕</em>切换导致ui问题,为此,<em>opengl</em>提出了归一化坐标来解决这个问题。归一化设备坐标: 具体说来就是把较小(端)边固定在[-1,1]范围,而较大边(端)按<em>屏幕</em>尺寸比例缩放。 比如1280x720
Unity3D Camera设置结合OpenGL详细解读
首先,总体概述。Unity里面的Camera是把渲染画面,最终呈现在<em>屏幕</em>上的最后一步操作。所有的渲染操作最终都要通过Camera在呈现。 如果用OpenGL来实现,Camera做了一下几个事情。 通过正交或是透视,剪裁平面,得到一个4x4的矩阵数据。这个矩阵就是,model-view-projection中的projection。所有物体的旋转R,平移T,缩放S,形成的矩阵数据
[OpenGL]OpenGL坐标系及坐标转换
OpenGL通过相机模拟、可以实现计算机图形学中最基本的三维变换,即几何变换(模型变换—视图变换(两者合称几何变换))、投影变换、裁剪变换、视口变换等,同时,OpenGL还实现了矩阵堆栈等。理解掌握了有关坐标变换的内容,就算真正走进了精彩地三维世界。 坐标系统 世界坐标系:在现实世界中,所有的物体都具有三维特征,但计算机本身只能处理数字,显示二维的图形,将三维物体及二维数据联系在一起的唯一纽带
OpenGL中与鼠标的交互——点击鼠标左键,在鼠标处画点
    下面介绍如何运用实现在鼠标点击处,实现画点。(C++实现)          要将鼠标有关的数据发送给应用程序,则需要将鼠标事件注册到glutMouseFunc(myMouse)。其中myMouse(int button, int state, int x,int y);函数名可以自己制定,在回调函数glutMouseFunc()中替换成相应的函数头就好。但是其中的四个参数是不可缺
Learn OpenGL (六):坐标系统
为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate),它在之后会变为世界坐标(World Coordinate),观察坐标(View Coordinate),裁剪坐标(Clip ...
OpenGL——glBegin()与glEnd()函数使用注意点
         OpenGL是一个工业标准的图形开发应用接口。它的接口定义简单,但是功能却十分强大,适合图形开发初学者使用。            在OpenGL最初的定义中,几何对象数据的输入是通过调用glBegin()和glEnd()接口对来实现的。glBegin()的参数表示其下所接收的数据是何种类型,如点,线段,三角型,扇形三角行,多边形等等。    
【OpenGL】4个视口的拼接与同步
图形学第三次作业的内容,老师给的题目是如何用4个ipad拼起来创造一个更大的视口。问题的简化就是把4个视口拼起来,并实现它们的同步。 思考+实践过后发现关键其实是四个视口必须绘制同样的东西,绘制完成后可以做一些平移变换把某些部分消隐掉(其实这些看不见的部分还在buffer里,如果后面做了旋转之类的操作它们还会再出现,所以实际上是四个相同的画面,每一时刻都只让观察者看到一部分,这四个部分加起来刚好
Screen space Reflections 屏幕空间反射 后期处理系列7
Screen space Reflections <em>屏幕</em>空间反射 本文档主要是对Unity官方手册的个人理解与总结(其实以翻译记录为主:&amp;gt;) 仅作为个人学习使用,不得作为商业用途,欢迎转载,并请注明出处。 文章中涉及到的操作都是基于Unity2018.3版本 参考链接:https://github.com/Unity-Technologies/PostProcessing/wiki/Scree...
【OpenGL】glClear函数的使用
函数原型:       void glClear(GLbitfield mask); 参数说明:       GLbitfield:可以使用 | 运算符组合不同的缓冲标志位,表明需要清除的缓冲,例如glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)表示要清除颜色缓冲以及深度缓冲,可以使用以下标志位       GL_COLO
【OpenGL】窗口,视口,裁剪区
首先解释下图形学中的<em>屏幕</em>,窗口,视见区(视口),裁剪区。 <em>屏幕</em>:即计算机的整个<em>屏幕</em>大小。 窗口:即<em>屏幕</em>中的某一个窗口,可放大放小和移动关闭。 视口:即在窗口中可以见到或可以用来绘图的部分。一般设置视口等于窗口。 裁剪区:即在视口中让你看到的图形,即显示出来的那部分。 GLUT的窗口初始化是在main函数中使用     1 2 3 4 5 6
OpenGL入门学习——第一课 编写第一个OpenGL程序
说起编程作图,大概还有很多人想起TC的#include 吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。 OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。 1、与C语言紧密结合。 OpenGL命
某大型社区网站系统ppt下载
某大型社区网站系统ppt 还不错 值得学习!!!!!!!!!!!!! 相关下载链接:[url=//download.csdn.net/download/metalwdf/1975806?utm_source=bbsseo]//download.csdn.net/download/metalwdf/1975806?utm_source=bbsseo[/url]
HTML JS实现验证码下载
JS脚本实现验证码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 相关下载链接:[url=//download.csdn.net/download/JavaPool/2046185?utm_source=bbsseo]//download.csdn.net/download/JavaPool/2046185?utm_source=bbsseo[/url]
清华 严蔚敏《数据结构》的全部代码实现(C语言)下载
/* algo1-1.c 计算1-1/x+1/x*x… */ #include<stdio.h> #include<sys/timeb.h> void main() { struct timeb t1,t2; long t; double x,sum=1,sum1; int i,j,n; printf("请输入x n:"); scanf("%lf%d",&x,&n); ftime(&t1); /* 求得当前时间 */ for(i=1;i<=n;i++) { sum1=1; for(j=1;j<=i;j++) 相关下载链接:[url=//download.csdn.net/download/yuanwei19900815/2237216?utm_source=bbsseo]//download.csdn.net/download/yuanwei19900815/2237216?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习opengl opengl教程python
我们是很有底线的