请教android openGL 顶点坐标的问题 [问题点数:30分]

Bbs1
本版专家分:0
结帖率 86.67%
Bbs4
本版专家分:1500
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs4
本版专家分:1500
OpenGL中纹理坐标和顶点坐标表示
纹理坐标:(s,t,r,q),注意纹理分为1维,2维,3维,在纹理贴图的时候,如果顶点发生变化,相应的纹理坐标会发生相应的变化。 <em>顶点坐标</em>:(x,y,z,w),注意变换方式以及相应的利用。OpenGL先关的几个函数。
Opengl ES Shader顶点坐标和材质坐标分析
课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和http网络视频的播放,支持访问本地的视频文件,并精确显示和控制播放进度:rn1讲解如何编译Android平台的ffmpeg库,使其支持neon技术和硬解码,并测试性能rn2使用<em>opengl</em>es的NDK shader高效播放yuv视频,不耗费cpu性能更优(GPU)rn3代码支持硬解码(省电不耗cpu)和多线程解码(高性能每秒解码240帧1080p)rn4支持网络流媒体(rtmp,rtsp,http)可直接拉流播放电视并支持rtsp摄像头访问rn5课程将设计模式应用到实践 - 观察者,构建者,门面,代理,适配器,单件模式
直角三角形顶点坐标问题
一个直角三角形,三个顶点为a(x,y);b(x,y);c(x,y)rnb(x,y)是直角顶点rn其中a(x,y)点和c(x,y)已知,a(x,y)点到b(x,y)的距离已知。如何确定b(x,y)点坐标?rn例:rna(10,20);c(40,5);a点到b点距离为15,求b点坐标?rnrn请详细解答,最好有编程算法,谢谢rn最详细的解答给全分,谢谢rn
纹理坐标和顶点坐标
纹理坐标是从0到1,它的坐标是x向右,y向下 <em>顶点坐标</em>是从-1到-1,坐标是x向右,y向上 当纹理坐标和<em>顶点坐标</em>的4个点相对应时,纹理图片是原始的位置 比如<em>顶点坐标</em>: static float vertexVertices[] = { -1f, -1f, /*左下角*/ 1f, -1f, /*右下角*/ -1f, 1f,
请教一个opengl问题
我画了两个面,有一条公共边,两面成90度角,rn定义了一个无穷远的光源,启动了深度缓冲检测。rn当以上三维图形转动时,在真彩色(32 位)时是正常的,rn可是显示模式调到增强色(16位)时,发现当一个面(A面)在前面挡住另一个面(B面rn)时rn在交线附近出现明显的锯齿状,锯齿里面是后面一个面的颜色。rn但是如果是B面挡住A面就没有这种情况,rn不知道这是怎么回事,请各位指点。
请教OpenGL一问题
本人正在用OpenGL绘制在公路上行驶的汽车。rn公路的路中线数据已知,为每一个公路断面建立一个结构(从而形成链表):rn struct sectrn double zh; //断面的桩号rn double x,y,z; //断面上路中线点的坐标rn struct sect*next; //指针next指向下一个相邻断面rn rn现在观察点和汽车在不同的截面上(汽车位置在观察点前方),观察点所在桩号为zh1(对应断面sect1),汽车所在桩号为zh2(对应断面sect2).rn观察模式采用gluLookAt()函数,函数中视点位置为sect1->x,sect1->y,sect->z, 参考点位置为sect1->next->x,sect1->next->y, sect1->next->zrnrnrn我采用的是如下方法,但是只能看到公路,看不到汽车:rnrn ......rn PushMatrix();rnrn PushMatrix();rn gluLookAt(); //此处用汽车位置为视点rn drawcar();rn PopMatrix();rnrn gluLookAt(); //此处用视点位置为视点rn drawroad();rn PopMatrix();rn ......rnrn请问应作如何的位置变换来绘制汽车(有专门的函数drawcar()来绘制汽车)?
请教opengl问题
我用<em>opengl</em>做个小仿真程序,就是一个圆盘在自转同时绕一个轴公转,rnrn我要绘出盘上的一点在运动过程中走过的路线,我不知道应该怎么实现?rnrn请大家给个思路,多谢了
请教OpenGL多视图的问题
程序利用CSplitterWnd 拆分为多个窗片,对应每个窗片都要利用OpenGL绘图。rn现在<em>问题</em>是只能要一个窗片可以绘图,另外几个不行。请问如何解决?
OpenGL贴图问题请教
如何将一bmp图像(1000×77)贴到一个圆柱上面,请给出代码,谢谢 :-)
请教:有关opengl问题
我是一个初学者,在用<em>opengl</em>编程时,遇到如下<em>问题</em>:怎样才能清除掉上一次画出的曲线,让背景回到原始状态,以便重新画曲线。我现在的程序是画第二条曲线时,第一条仍然存在在背景下。谢谢!
请教一个OPENGL的问题
从3DS文件中读取数据在VIEW中显示。rn那3DS坐标与VIEW坐标的转换关系怎么算?rn多谢!!
请教两个opengl问题
1.要看到物体全貌,怎样确定glTranslatef(0.0f,0.0f,z)中的z?物体中心在坐标中心。rn2.怎样将<em>opengl</em>绘制的图形保存为bmp或其他格式图形?rn望高手赐教.
请教:OpenGL的问题
vc7.0.9466:rnwin32 application:rn#include rn#include rn很多诸如此类的错误:unresolved external symbol __imp__wglDeleteContext@4 referenced in function "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z)rn查看gl.h里有glEnable等的定义。rninclude direction 没有<em>问题</em>rn这是为什么??????
请教OpenGL纹理问题
现有一个maskrn[img]http://att.newsmth.net/att.php?s.50.49484.3868.png[/img]rn想画一个如下图rn[img]http://att.newsmth.net/att.php?s.50.49484.1018.png[/img]rn所示的部件。rnrn可是结果总是出现黑边,似乎alpha值没有设置正确。结果如图:rn[img]http://att.newsmth.net/att.php?s.50.49484.4821.png[/img]rnrn代码如下:rnrn//画绿色长方形rnglColor4f(0, 1, 0, 1);rnglRectf(left, bottom, right, (bottom + top) / 2);rnrnglEnable(GL_BLEND);rnglBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);rnrnglEnable(GL_TEXTURE_2D);rnGLint textureID = maskID;rnglBindTexture(GL_TEXTURE_2D, textureID);rnglBegin(GL_QUADS);rnglTexCoord2f( 0, 0 ); glVertex3f(left, bottom, 1.0 );rnglTexCoord2f( 1, 0 ); glVertex3f(right, bottom, 1.0 );rnglTexCoord2f( 1, 1 ); glVertex3f(right, top, 1.0 );rnglTexCoord2f( 0, 1 ); glVertex3f(left, top, 1.0 );rnglEnd();rnrnglDisable(GL_TEXTURE_2D);rnglDisable(GL_BLEND);rnrn请问<em>问题</em>在哪里rnrn刚刚注册,不知道有多少分,有多少我尽量给^_^rn谢谢先
请教OpenGL问题
刷新背景色,可以设为透明吗?
请教OpenGL与proE的问题
我用VC做proE二次开发,需要用OpenGL的函数读取proE中显示的模型图像信息,但有些能够正确读取,有些则不能,用glReadPixel读取各像素的ZBuffer深度信息,读出的各点值很奇怪都为1,而同样用该函数读取颜色值则正确,不知道是什么原因,哪位大虾给指点指点,谢谢!大致代码如下:rnconst int width=1024;rnconst int height=768;rnfloat z[width*height];rnint rgb[width*height*3];rnglReadPixels(0,0,width,height,GL_DEPTH_COMPONENT,GL_FLOAT,z);rnglReadPixels(0,0,width,height,GL_RGB,GL_BYTE,rgb);rnrn另外,proE二次开发中如何读取模型的显示比例?
请教 : opengl贴图的问题?!
我在<em>opengl</em>用了一个平面的贴图 , 想做背景用 , 但其它绘制的模型就都被挡住了rn 怎样让其它3D的模型出现在这个背景的前面呢?rn rn //平面贴图的代码?rn glEnable(GL_TEXTURE_2D);rn glMatrixMode(GL_PROJECTION);rn glLoadIdentity();rn glOrtho(0, (GLdouble)scr_width , 0, (GLdouble)scr_height , 0.0f, 1.0f);rn glMatrixMode(GL_MODELVIEW);rn glLoadIdentity();rnrn glBindTexture(GL_TEXTURE_2D, texture[1]); rn glBegin(GL_QUADS);rn glTexCoord2i(0 , 0); glVertex2i( x , y ); rn glTexCoord2i(1 , 0); glVertex2i( x + w , y ); rn glTexCoord2i(1 , 1); glVertex2i( x + w , y + h ); rn glTexCoord2i(0 , 1); glVertex2i( x , y + h ); rn
请教一个OpenGL的问题
小弟刚接触OpenGL,画了个立方体,有颜色,没有光照、材质。rn我在加入动画旋转的时候,屏幕老闪烁,请问各位大虾,该怎么解决啊??rn
OpenGL相关问题请教
工作环境: mac:10.11.2rnxcode:7.2.1rn使用了glut和gltools,可以正常运行,但是不出现三角形。rn麻烦懂得帮忙看一下,谢啦!rnrn#include rn#include rn#include "GLTools.h"rn#include rnrnconst GLchar* vertexShaderSource = "#version 120\n"rn "attribute vec3 position;\n"rn "void main()\n"rn "\n"rn "gl_Position = vec4(position.x, position.y, position.z, 1.0);\n"rn "\0";rnrnconst GLchar* fragmentShaderSource = "#version 120\n"rn "vec4 color;\n"rn "void main()\n"rn "\n"rn "color = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n"rn "\n\0";rnrnGLuint vertexShader;rnGLuint fragmentShader;rnGLint shaderProgram;rnGLuint VAO, VBO;rnrnvoid StepRC()rnrn //顶点着色器rn vertexShader = glCreateShader(GL_VERTEX_SHADER);rn glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);rn glCompileShader(vertexShader);rn rn GLint success;rn GLchar infoLog[512];rn glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success);rn if(!success)rn rn glGetShaderInfoLog(vertexShader, 512, NULL, infoLog);rn std::cout << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n" << infoLog << std::endl;rn rn rn //片段着色器rn fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);rn glShaderSource(fragmentShader, 1, &fragmentShaderSource, nullptr);rn glCompileShader(fragmentShader);rn rn glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &success);rn if(!success)rn rn glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog);rn std::cout << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n" << infoLog << std::endl;rn rn rn shaderProgram = glCreateProgram();rn glAttachShader(shaderProgram, vertexShader);rn glAttachShader(shaderProgram, fragmentShader);rn glLinkProgram(shaderProgram);rn rn glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success);rn if(!success) rn glGetProgramInfoLog(shaderProgram, 512, NULL, infoLog);rn std::cout << "LINK PROGRAM\n" << infoLog << std::endl;rn rn rn glDeleteShader(vertexShader);rn glDeleteShader(fragmentShader);rn rn GLfloat vertices[] = rn -0.5f, -0.5f, 0.0f, // Top Rightrn 0.5f, -0.5f, 0.0f, // Bottom Rightrn 0.0f, 0.5f, 0.0f // Bottom Leftrn ;rn rn glGenVertexArrays(1, &VAO);rn glGenBuffers(1, &VBO);rn rn glBindVertexArray(VAO);rn glBindBuffer(GL_ARRAY_BUFFER, VBO);rn glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);rn rn GLint idx = glGetAttribLocation(shaderProgram, "position");rn glVertexAttribPointer(idx, 3, GL_FLOAT, GL_FALSE, 3*sizeof(GLfloat), (GLvoid*)0);rn glEnableVertexAttribArray(idx);rn rn glBindBuffer(GL_ARRAY_BUFFER, 0);rn glBindVertexArray(0);rnrnrnvoid RenderScene()rnrn glClearColor(0.2f, 0.3f, 0.3f, 1.0f);rn glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);rn rn// glUseProgram(shaderProgram);rn glBindVertexArray(VAO);rn glDrawArrays(GL_TRIANGLES, 0, 3);rn glBindVertexArray(0);rn rn glutSwapBuffers();rnrnrnint main(int argc, char* argv[])rnrn gltSetWorkingDirectory(argv[0]);rn glutInit(&argc, argv);rn glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);rn glutInitWindowSize(800, 600);rn glutCreateWindow("3D Effects Demo");rn// glViewport(0, 0, 800, 600);rn rn GLenum err = glewInit();rn if (GLEW_OK != err)rn rn /* Problem: glewInit failed, something is seriously wrong. */rn fprintf(stderr, "Error: %s\n", glewGetErrorString(err));rn return 1;rn rn rn glutDisplayFunc(RenderScene);rnrn StepRC();rn glutMainLoop();rn rn// glDeleteVertexArrays(1, &VAO);rn// glDeleteBuffers(1, &VBO);rn rn return 0;rnrn
opengl 投影问题请教
我先后画了两张图,第二张相对于第一张只是z轴调整了一下,这样就是两张平行的图片,现在我第一张图片会慢慢的缩小,而他后面的那张不变,现在想在垂直于两张图片的方向加一个灯光,使得缩小的那张图片在其后面的背景图片上有影子,请问怎么实现,,,希望各位能稍微写几句关键代码,不要只说“你怎么怎么就好了”,我是新手
请教OpenGL的简单问题---
用如下语句画了个正方形:rn glBegin(GL_POLYGON);rn glVertex3f(-100.0f,-100.0f,0.0f);rn glVertex3f(100.0f,-100.0f,0.0f);rn glVertex3f(100.0f,100.0f,0.0f);rn glVertex3f(-100.0f,100.0f,0.0f);rn glEnd();rn可显示出来的却是个矩形,请问可能是什么原因?rnglViewport()中的宽高比能影响这个吗?rngluPerspective()设置的投影矩阵参数中有能影响这个的吗?rn还是有其它什么别的原因?rn谢谢指教--
请教OpenGL选取问题
<em>请教</em>高手:rn在下首先在一块区域内绘制了几个物体,此时可以用鼠标对物体惊醒选取操作;rn但是我在这个区域做了个纹理贴图做背景后<em>问题</em>出现了,这几个物体不能被选取了!rn为什么?因为在同一区域还有那个纹理导致物体不能被选取吗?rn怎样修改呢?
OPENGL问题请教
我要实现的是地形图像的三维建模,已知的数据是图像点的X,Y,Z值和R,G,B颜色值,图像点是离散的,且点的数据量很大,有几百万个点。由于先前用的其他图形库,建模效率方面比较差,所以现在用OPENGL想看下建模的效果,总体上还是以显示的速度为重点,当然越快越好。请各位从事过图像建模方面的朋友给点建议,具体怎么做可以以比较快的速度完成我所需的图像建模。rnPS:有朋友说可以通过把每个点的颜色值提做成二维纹理,然后和顶点进行融合就可以了。但不知道具体怎么实现,所以在此<em>请教</em>各位给个思路,请各位畅所欲言,不吝赐教。
请教OpenGL 问题
<em>请教</em>OpenGL的一些常用的绘图命令是在内存中绘图还是显存中绘图啊?也就是说OpenGL的缓冲区在哪儿啊(内存或显存)?怎么控制写显存或写内存啊?
请教OpenGL贴图问题
glBegin(GL_TRIANGLE_STRIP);rnfor(int i=0;i<=n;i++)rnrn glVertex3d(R*cos(2*PI/n*i),R*sin(2*PI/n*i),0);rn glVertex3d(R*cos(2*PI/n*i),R*sin(2*PI/n*i),H);rnrnglEnd();rnrn这是一个三角形片围城的高为H的n棱柱,想在这个棱柱上贴纹理图,应该怎么贴?rn我是新手,我知道这个<em>问题</em>很白痴,可是我真的不会……请各位高手赐教,谢谢!
请教有关OPENGL的问题
求一个以键盘方向光标(左、右)实现旋转,(上、下)实现缩放的三维圆柱图象相关源代码rn由于本人是初学者,加之时间紧迫,希望各位大虾提供较为详尽的源代码,特此谢谢大家
请教一个opengl问题
<em>请教</em>大家一个<em>opengl</em>编程的入门级<em>问题</em>:我在一个while语句中画了一个简单的窗口,我的设想是,这个窗口中的柱体能够根据我给出的数据不同而不断变化。rn但是现在遇到的<em>问题</em>是,每次画完一个display函数后,接着就要执行glutmainloop()函数。该函数可以让窗口显示,但是同时,它又会返回到main函数中,从而跳出while循环。rn<em>请教</em>大家,我可以换个什么函数,使它即能显示我想要画的窗口,又不会返回main函数,而在while循环中待着呢?
请教OpenGL垂直同步的问题
求高人指教。rn 最近在搞OpenGL开发,是这样一个功能:双屏显示,在主屏打开一个视频,窗口显示,点击全屏后,主屏停止显示,在副屏全屏显示。主屏刷新率60HZ,副屏刷新率90HZ。发现SwapBuffer的阻塞的时间不对:如果只接60HZ的屏,整个渲染和SwapBuffer大概消耗的时间就是16.6ms,如果只接90HZ的屏,消耗的就是11HZ,基本上是根据屏幕的垂直同步时间来执行渲染显示的。这样的话程序里时间逻辑很好控制,知道需要sleep多长时间然后再渲染下一帧数据。但是两个屏都接上的话,感觉Swapbuffer的时间不确定,好像是两个屏的刷新周期混在了一起,显示出来的的画面也会轻微的颤抖。rn 我猜想是两个屏刷新率不同导致的,换了两个60HZ的屏或者两个90HZ的屏,显示都很稳。我想能不能全屏显示的时候让SwapBuffer的阻塞时间按照所在屏幕的刷新周期来执行。rn 希望高手能给指点一下。
请教OpenGL的PipeLine问题
<em>请教</em>为什么在Clipping in a graphic pipeline之前要完成Lighting呢?rnrn谢谢
请教OpenGL纹理映射的问题
要对一个任意的三维模型表面进行纹理映射,要求是将一个图片一次就包在上面,那这个纹理坐标该怎么计算呢?有没有什么好的算法呢?急需大家的帮助!rn
opengl问题请教,急!
const float point[8][3]=rnrn 0.25,0.25,0.5,rn 0.25,0.75,0.5,rn 0.75,0.75,0.5,rn 0.75,0.25,0.5,rn 0.25,0.25,0,rn 0.25,0.75,0,rn 0.75,0.75,0,rn 0.75,0.25,0rn;rnrnconst int mian[6][4]=rnrn 0,1,2,3,rn 0,1,5,4,rn 4,5,6,7,rn 3,2,6,7,rn 0,3,7,4,rn 1,2,6,5rn;rnrnvoid display()rnrn glEnableClientState(GL_VERTEX_ARRAY);rn glVertexPointer(8,GL_FLOAT,0,point);rnrn glClear(GL_COLOR_BUFFER_BIT);rn glColor3f(1,1,1);rnrn glBegin(GL_POLYGON);rn for(int i=0;i<6;i++)rn rn glArrayElement(mian[i][0]);rn glArrayElement(mian[i][1]);rn glArrayElement(mian[i][2]);rn glArrayElement(mian[i][3]);rn rn glEnd();rnrn glFlush();rn glDisableClientState(GL_VERTEX_ARRAY);rnrnrn这段代码由<em>问题</em>,不只是什莫<em>问题</em>,请纠正!多谢
请教OpenGL坐标系的问题
请问视图坐标系,窗口坐标系,世界坐标系,笛卡尔坐标系,具体x,y,z是怎样的?rn如果程序里,不加坐标系转换语句,x,y,z是怎样的,符合那个坐标系?我画了一个台柱,怎么觉得z的正向是从外向内呢?rn
关于opengl问题请教
大家学<em>opengl</em>都知道NeHe的OpenGL教程巴?但是我无论编译哪个例子都总是出以下的错误: rn rn --------------------Configuration: Lesson5 - Win32 rnDebug-------------------- rnLinking... rnLIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main rnDebug/Lesson5.exe : fatal error LNK1120: 1 unresolved externals rnError executing link.exe. rn rnLesson5.exe - 2 error(s), 0 warning(s) rn rn 我是用vc6来编译的,OpenGL32.lib、GLu32.lib及GLaux.lib库文件都加上了, rn但是每次运行都是这种<em>问题</em>,苦闷中。。。。
请教关于Opengl的问题
我在<em>opengl</em>中建立好模型后rn发现其中某几个面看不见rn在对其进行旋转时rn这几个面又能看见rn也就是说,我建立的模型好像跟观察位置有关系rn不知是为什么rn请大侠指教rn
请教openGL贴图坐标的问题
比如一个宽256长512的bmp图,贴图到宽比高为1:2的平面上,四个角的贴图坐标分别是怎样定义的?rn
opengl拾取的问题请教
我想达到的目标是这样的首先我在某个投影空间画了很多点 线什么的 是三维的,我想用鼠标拾取上面的线或者别的,怎么实现呢?rn我看了红宝书上的例子但不是很清楚几个<em>问题</em>rn1、是不是拾取后还要将原来图形重绘?rn2、如何判断拾取结束rn3、如何返回拾取对象的信息(比如点的坐标、线的长度等等)rn不胜感激,分数不够继续加。
openGl 请教 视点 问题
打扰大家了.想问下在openGl下,如果没有调用gluLookat,请问[color=#FF0000]默认的[/color]视点位置在哪
请教有关opengl问题
请问如何将一个现实中的物体,利用VC++和<em>opengl</em>,进行三维的重构,我知道了一些纹理贴图的知识,请问是这个思路吗,并且,物体的坐标如何变换,即从二维到三维,因为我打算从物体的几个不同方位的图片进行重构,谢谢.
android opengl 问题
比如说一个正方体,用<em>opengl</em>如何让它在手机上围绕一个点旋转呢,gl.glRotatef()方法我试过,只能围绕x,y,z轴旋转,还有其他方法可以实现的吗?
android opengl 纹理贴图问题
最近在做一个麻将游戏,背景已经能正常显示,尝试将麻将牌贴到背景上面去,但发现贴上去的图和原图不对应,[img=file:///C:/Users/lilinfeng/Desktop/1.jpg][/img]这是原图,模拟器上的图片如下 [img=file:///C:/Users/lilinfeng/Desktop/2.jpg][/img]rnrnrn相应的绘图代码:rnrnpublic void draw(GL10 gl) rn //绘制背景 rn gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); rn rn gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); rn gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); rn gl.glVertexPointer(2, GL10.GL_FLOAT, 0, vertexBuffer); rn gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer); rn gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,0,4);rn rn rn gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); rn gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY); rn gl.glTranslatef(0.1f, 0.1f, 0f); rn //绘制麻将牌rn gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[1]); rn rn gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); rn gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); rn rn gl.glVertexPointer(2, GL10.GL_FLOAT, 0, MahjongBuffer); rn gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer); rn gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,0,4);rn// gl.glRotatef(90f, 0.0f, 1.0f, 0.0f); //尝试过旋转,但没用rn gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); rn gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY); rn rn rnrn刚接触<em>opengl</em>,是新手,望各位高手多多指点,这个<em>问题</em>该如何解决?rn
androidopengl使用问题
直接基于GLSurfaceView,rn且基于这些事实:rn1. 一个activity只能有一个GLSurfaceView,rn2. 一个GLSurfaceView内有一个UI主线程和一个GL渲染线程。rnrn我现在有个需求:rn想基于OpenGL做一个service:负责接收顶点数据,OpenGL渲染的内容并不直接显示,而是通过以bitmap的形式传给UI线程显示。rnrnrnrnrnrnrnrn
Android下OpenGL贴图的问题
如何使用OpenGL不断切换显示图片,图片数是动态过来的。rn有点类似视频播放那样。rnrn开始使用Canvas实现,非常简单,但效率有点低,达不到项目要求。
android opengl es问题
大家好,我用<em>android</em> <em>opengl</em> es绘制了1个三角形,然后我想把这个绘制的三角形保存成位图文件,保存在某个地方,我尝试去调用gl.glReadPixels()读取像素,然后把它写入文件中,但是貌似不行 我想<em>请教</em>下 改怎么实现啊。
opengl请教
rn <em>opengl</em>是如何表现材质的(3dsmax中的),有光照、阴影吗?是否可以做一个玻璃瓶rn透明的,看到后面的东西?rn 谢谢您的回答! rn
请教一个关于OPENGL的问题
定义荧幕从左到右为X+,从下到上为Y+,垂直荧幕向外为Z+。rnrn使一个物体,在按上下的时候以X为轴旋转,在按左右的时候以Y为轴旋转。rnrn我自己在做的时候,使用了rnrnglRotatef( m_fXrot, 1.0f, 0.0f, 0.0f );rnglRotatef( m_fYrot, 0.0f, 1.0f, 0.0f );rnrn但是,发现并不能满足以上的要求。rnrn我在写的时候发现glRotatef这个函数好象是改变了世界坐标。rn所以在按上下时,物体以X为轴旋转,世界坐标的Y轴发生了变化。设为Y'.rn再按左右的时候,物体以变化后的Y'为轴旋转。这个时候,X轴应该也发生了变化啊。设为X'.rnrn但是,再按上下时,发现物体依然以X为轴旋转,而不是以X'为轴旋转。rnrn这个是什么原因啊?rnrn<em>请教</em>各位,应该如何完成。rn
请教:openGL的“当前矩阵”的问题
本人最近开始学openGL,但碰到不少<em>问题</em>。现有关于“当前矩阵”的<em>问题</em>请求您的帮助。 如程序:rn void display(void)rn glClear(GLUT_COLOR_BUFFUER_BIT);rn glColor(1,1,1);rn glLoadIndentity();//用单位矩阵代替当前矩阵rn draw_triangle();//画三角形rn rn ......rn glLoadIndentity();//用单位矩阵代替当前矩阵rn //在画完一个三角形后和启动画另一个三角形前rn 又要用到glLoadIndentity()rn<em>问题</em>:我想<em>请教</em>在两次用glLoadIndentity()前的“当前矩阵”rn是什么,即用用单位矩阵代替的矩阵是什么?rn 非常感谢!rn rnrnrn
请教:opengl设置颜色的问题?
我用glColor3f(0.0f,0.0f,1.0f)画了一多边形 , rnrn 然后接着又用贴图画了一个立方体 , 但是贴图的颜色也变成了我设置的颜色rnrn 怎样让贴图不受颜色的影响呢?
请教opengl关于glCopyPixels的问题?
我现在需要把事先存储的depth(z-buffer) float z_dat[] 数据写到rnframebuffer里面rn一般情况下可以使用glDrawPixels(.......&z_dat) ...rn但这样非常慢 , 因为z_dat是内存 , framebuffer是显存.数据传输很慢,rn能不能有种方法可以找一块空闲的framebuffer把z_dat数据先写进去 ,rn然后就可以使用glCopyPixels() , 速度会不会快很多?
请教一个OPENGL 矩阵的问题
openGLrn中是否可以自己定义一个矩阵然后把该矩阵作为世界矩阵使用,就像Direct3D那样
关于OPENGL纹理问题请教
看了一些关于OPENGL纹理的介绍,大部分都是把图片格式的文件直接加到点,线,面组成的模型上。我现在的数据文件是有精确的点的信息的,也是说R,G,B值是确定的,想请问一下怎么把这些R,G,B值作成一个二维纹理,同时又怎么把这个纹理去对应于三维点的坐标,从而完成图像的可视化。
OpenGL问题请教,大侠请进
偶做了一个控制3维模型运动的OpenGL程序,由于偶的3维模型有多个部件,想让其中的某个部件绕其中心轴线旋转,就像炮台绕其底座旋转,如何获取其中心轴线呢?换句话说,如果偶要使某部件绕平行于z轴的中心轴线旋转,以及使某部件绕平行于XY平面的某直线旋转,如何编写其glRotate函数,而不仅仅是简单的glRotate(angle,0.0,0.0,1.0)呢?rn 请大侠们指教啊,偶做毕业设计很急,多谢
OPENGL纹理丢失的问题请教
先描述一下吧,我目前做的OPENGL游戏在按HOME键退回到主界面后,再进游戏,整个游戏就白屏了,调试后发现回到游戏时会再次调用onSurfaceCreated,于是我在这里面重新加载纹理资源就OK了~~但是RELOAD会使游戏卡上一段时间,不能立刻回到游戏,这样会造成用户体验不好~rnrn我想问的是回到OPENGL界面的时候是不是必须重新RELOAD纹理资源?rnrn但我看到有些OPENGL做的游戏返回的时候非常快,不像RELOAD了资源啊?rnrn<em>请教</em><em>请教</em>~rnrn多谢指教!
请教OPENGL的两个简单问题
1.怎么把一个球体设置为半透明的,使得能看见球体里面的东西。rn2.在哪儿能找到各种颜色对应的RGB值啊?
请教vc++关于opengl问题
vc界面的坐标和<em>opengl</em>的函数坐标有什么关系??
请教OpenGL环境下位图显示问题
在OpenGL下,我用glRasterPos2f(x,y)定位,rn用glDrawPixels(w,h,GL_BGR_EXT,GL_UNSIGNED_BYTE,bits)显示.rn但x,y如果不在客户区内,图像就无法显示,rnrn请问,有什么办法解决啊??rn显示大图像时,肯定能遇到这个<em>问题</em>
请教opengl辅助库的问题???
[code=C/C++]#includern#include rn#includernrnint main(int argc, char** argv)rnrn auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);rn auxInitPosition(0,0,500,500);rn auxInitWindow(TEXT("sample"));rn rn glClearColor(0.0,0.0,0.0,0.0);rn glClear(GL_COLOR_BUFFER_BIT);rn rn glColor3f(1.0,0.0,0.0);rn glRectf(-0.5,-0.5,0.5,0.5);rn rn glFlush();rn Sleep(1000);rnrn return 1;rnrn[/code]rn错误是:rnerror LNK2019: 无法解析的外部符号 _auxInitWindowW@4,该符号在函数 _main 中被引用rnerror LNK2019: 无法解析的外部符号 _auxInitPosition@16,该符号在函数 _main 中被引用rnerror LNK2019: 无法解析的外部符号 _auxInitDisplayMode@4,该符号在函数 _main 中被引用rnfatal error LNK1120: 3 个无法解析的外部命令rnrnrn我的环境是vs2008.怎么回事?如何解决???rn
请教OpenGL高手一个问题
我在学习OpenGL时,根据书中的源代码编译执行时发现该代码在Windows 2000 professional中运行时,调用SwapBuffers(hDC)不成功,但是在Windows XP中却可以成功调用,<em>请教</em>大虾这是怎么回事,另外,如果要在professional中通过,该程序该如何修改?请大虾指点一二!谢谢rnrn#include rn#include rn#include rn#include rn#include rn#include rnrnHWND hWnd;rnHDC hDC;rnHGLRC hRC=NULL; //定义渲染环境rnHINSTANCE hInstance; //得到程序的例子rnrnRECT rect;rnrnint sw = 640;rnint sh = 480;rn rnbool fullscreen = 1;rnrnGLfloat aspect;rnrn#pragma comment( lib, "<em>opengl</em>32.lib" ) // 链接时使用OpenGL32.librn#pragma comment( lib, "glu32.lib" ) // 链接时使用GLu32.lib rn#pragma comment( lib, "glaux.lib" ) // 链接时使用GLaux.librnrnvoid SceneInit(int w, int h)rnrn glShadeModel(GL_SMOOTH); //允许平滑着色rn glClearColor( 0.0, 0.0, 0.0, 0.5 );rn glClearDepth(1.0f); //设置深度缓冲区rn glEnable(GL_DEPTH_TEST);rn glDepthFunc(GL_LEQUAL); //深度测试的类型rn glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);rnrnrnvoid SceneResizeViewport(GLsizei w, GLsizei h)rnrn if(h==0) rn rn h=1;rn rn aspect = (GLfloat)w/(GLfloat)h;rnrn glViewport(0, 0, w, h);rn glMatrixMode(GL_PROJECTION); //选择投影矩阵rn glLoadIdentity();rnrn gluPerspective( 45.0f, aspect, 0.1f, 100.0f );rn glMatrixMode(GL_MODELVIEW); rn glLoadIdentity(); rnrnrnrnvoid SceneShow(GLvoid) //这里进行所有的绘图工作rnrn glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清屏和清除深度缓冲区rn glLoadIdentity(); //重置当前Modelview矩阵rn glTranslatef(-1.5f,0.0f,-6.0f); //向左移动1.5个单元、向屏幕里移动6.0个单元rn glBegin(GL_TRIANGLES); //开始绘制三角形rn glColor3f(1.0f,0.0f,0.0f); //设为红色rn glVertex3f( 0.0f, 1.0f, 0.0f); //顶rn glColor3f(0.0f,1.0f,0.0f); //设为绿色rn glVertex3f(-1.0f,-1.0f, 0.0f); //左下rn glColor3f(0.0f,0.0f,1.0f); //设为蓝色rn glVertex3f( 1.0f,-1.0f, 0.0f); // 右下rn glEnd(); //结束三角形绘制rn glTranslatef(3.0f,0.0f,0.0f); //向右移动三个单元rn glColor3f(0.5f,0.5f,1.0f); //仅进行一次颜色设置(蓝色)rn glBegin(GL_QUADS); //开始绘制矩形rn glVertex3f(-1.0f, 1.0f, 0.0f); //左上rn glVertex3f( 1.0f, 1.0f, 0.0f); //右上rn glVertex3f( 1.0f,-1.0f, 0.0f); //右下rn glVertex3f(-1.0f,-1.0f, 0.0f); //左下rn glEnd(); rnrnrnvoid EnableOpenGL()rnrn PIXELFORMATDESCRIPTOR pfd;rn int iFormat;rnrn hDC = GetDC( hWnd );rnrn ZeroMemory( &pfd, sizeof( pfd ) );rn pfd.nSize = sizeof( pfd );rn pfd.nVersion = 1;rn pfd.dwFlags = PFD_DRAW_TO_WINDOW |rn PFD_SUPPORT_OPENGL |rn PFD_DOUBLEBUFFER;rn pfd.iPixelType = PFD_TYPE_RGBA;rn pfd.cColorBits = 16;rn pfd.cDepthBits = 16;rn pfd.iLayerType = PFD_MAIN_PLANE;rnrn iFormat = ChoosePixelFormat( hDC, &pfd );rnrn SetPixelFormat( hDC, iFormat, &pfd );rnrn hRC = wglCreateContext( hDC );rn wglMakeCurrent( hDC, hRC );rnrnrnrn// 取消 OpenGL rnvoid DisableOpenGL()rnrn wglMakeCurrent( NULL, NULL );rn wglDeleteContext( hRC );rn ReleaseDC( hWnd, hDC );rnrnrnbool ChangeResolution(int w, int h, int bitdepth)rnrn DEVMODE devMode;rn int modeSwitch;rn int closeMode = 0;rnrn EnumDisplaySettings(NULL, closeMode, &devMode);rnrn devMode.dmBitsPerPel = bitdepth;rn devMode.dmPelsWidth = w;rn devMode.dmPelsHeight = h;rn devMode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;rnrn modeSwitch = ChangeDisplaySettings(&devMode, CDS_FULLSCREEN);rnrn if(modeSwitch == DISP_CHANGE_SUCCESSFUL)rn rn return true;rn rn elsern rn ChangeDisplaySettings(NULL, 0);rn return false;rn rnrnrnLRESULT CALLBACK WndProc( HWND hWnd, UINT message,rn WPARAM wParam, LPARAM lParam )rnrnrn switch ( message )rn rn case WM_CREATE:rn GetWindowRect(hWnd, &rect);rn sw = rect.right - rect.left;rn sh = rect.bottom - rect.top;rn SceneResizeViewport(sw, sh);rn return 0;rnrn case WM_SIZE:rnrn if(!fullscreen)rn rn GetWindowRect(hWnd, &rect);rn sw = rect.right - rect.left;rn sh = rect.bottom - rect.top;rn if(sw>0 && sh>0)rn SceneResizeViewport(sw, sh);rn rn elsern rn SceneResizeViewport(GetSystemMetrics( SM_CXSCREEN ),rn GetSystemMetrics( SM_CYSCREEN ));rn rnrn return 0;rnrn case WM_CLOSE:rn ShowWindow (hWnd, SW_HIDE);rn PostQuitMessage( 0 );rn return 0;rnrn case WM_DESTROY:rn return 0;rnrn case WM_KEYDOWN:rn switch( wParam )rn rn case VK_ESCAPE:rn PostMessage(hWnd, WM_CLOSE, 0, 0);rn break;rn rn return 0;rn default:rn return DefWindowProc( hWnd,message, wParam, lParam );rn rnrnrnrnint APIENTRY WinMain(HINSTANCE hInstance,rn HINSTANCE hPrevInstance,rn LPSTR lpCmdLine,rn int nCmdShow)rnrn WNDCLASS wc;rn MSG msg;rn bool bQuit = false;rnrnrnrn if (MessageBox(NULL,"是否选择全屏显示模式?", "全屏方式运行?",MB_YESNO|MB_ICONQUESTION)==IDNO)rn rn fullscreen=0; //窗口模式rn rnrn wc.style = CS_OWNDC;rn wc.lpfnWndProc = WndProc;rn wc.cbClsExtra = 0;rn wc.cbWndExtra = 0;rn wc.hInstance = hInstance;rn wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );rn wc.hCursor = LoadCursor( NULL, IDC_ARROW );rn wc.hbrBackground = (HBRUSH)GetStockObject( BLACK_BRUSH );rn wc.lpszMenuName = NULL;rn wc.lpszClassName = "Name";rn RegisterClass( &wc );rnrnrn if(fullscreen)rn rn ChangeResolution(640, 480, 16);rn hWnd = CreateWindow(rn "Name",rn "Lesson1",rn WS_POPUP | WS_CLIPSIBLINGS | WS_VISIBLE,rn 0, 0,rn GetSystemMetrics( SM_CXSCREEN ),rn GetSystemMetrics( SM_CYSCREEN ),rn NULL, NULL,rn hInstance,rn NULL );rn elsern rn hWnd = CreateWindow(rn "Name",rn "Lesson1",rn WS_TILEDWINDOW | WS_VISIBLE,rn GetSystemMetrics( SM_CXSCREEN )/2-sw/2,rn GetSystemMetrics( SM_CYSCREEN )/2-sh/2,rn sw,rn sh,rn NULL, NULL,rn hInstance,rn NULL );rn ChangeDisplaySettings(NULL, 0);rn rn ShowWindow(hWnd, SW_SHOW);rn UpdateWindow(hWnd);rnrn //Initialisationrn EnableOpenGL();rn SceneInit(sw, sh);rnrn if(!fullscreen)rn rn GetWindowRect(hWnd, &rect);rn sw = rect.right - rect.left;rn sh = rect.bottom - rect.top;rn if(sw>0 && sh>0)rn SceneResizeViewport(sw, sh);rn rn elsern rn SceneResizeViewport(GetSystemMetrics( SM_CXSCREEN ),rn GetSystemMetrics( SM_CYSCREEN ));rn rnrn while ( !bQuit )rn rn if ( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )rn if ( msg.message == WM_QUIT )rn bQuit = true;rn else rn rn TranslateMessage( &msg );rn DispatchMessage( &msg );rn rn elsern rnrn // OpenGL 动画rn SceneShow();rn///////////************************* Error ***************************////////////////rn SwapBuffers(hDC); //此处调用不成功,返回值为false!rnrn rn rnrn //关闭,退出程序rn DisableOpenGL();rnrn ShowWindow (hWnd, SW_HIDE);rn DestroyWindow( hWnd );rnrn ChangeDisplaySettings(NULL, 0);rnrn return msg.wParam;rnrn return 0;rn
请教OpenGL中gluLookAt的问题
我写了下面这段代码,用来画一个三角形。按照我的理解使用gluLookAt(0,0,0.3,0,0,0,0,1,0); 应该可以看到三角形的形状,但是程序运行后什么也没有。rn换成gluLookAt(0,3,0,0,0,0,0,0,1);之后才有三角形出现。rn rn我的目的是在z坐标为0的x-y平面上画一个三角形。但是如果我把三个点的z坐标全部设成0,怎么也看不到三角形。只有把其中一个点的坐标改成不是0的值才能看到三角形。rn rn请问这个怎么解释?完整的程序在附件中,使用vc2003编写的。 rnrnrn rn rn rn rnglMatrixMode( GL_MODELVIEW );rn glLoadIdentity( ); // 单位化矩阵rn //gluLookAt(0,0,0.3,0,0,0,0,1,0); //视图变换rn gluLookAt(0,3,0,0,0,0,0,0,1); //视图变换rn glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );rn glBegin(GL_TRIANGLES);rn glColor3f(1,0,0);rn glVertex3d((float)0,(float)0.5,(float)1);rn glColor3f(1,1,0);rn glVertex3d((float)0.5,(float)0,(float)0);rn glColor3f(0,1,0);rn glVertex3d((float)-0.5,(float)0.5,(float)0);rn glEnd();rn ::SwapBuffers(m_pDC->GetSafeHdc()); //交互缓冲区rn
请教 OpenGL VBO的问题 急~~~~~~~~~~~~~~~~~~~~~
[code=C/C++]rn GLfloat fAxisVertexList[][3] = rn rn 0.0f,0.0f,0.0f,rn 30.0f * m_fModelWindowRatioX * m_fScale,0.0f,0.0f,rn 0.0f,50.0f * m_fModelWindowRatioX * m_fScale,0.0f,rn 0.0f,0.0f,70.0f * m_fModelWindowRatioX * m_fScale,rn ;rn rn static GLuint unAxisIndexList[][2] = rn rn 0,1,rn 0,2,rn 0,3,rn ;rnrn static int isFirstCall = 1;rn static unsigned int unVertexBuffer; // 顶点缓存对象的名称rn static unsigned int unIndexBuffer; rnrn bool bVBOSupported = IsExtensionSupported( "GL_ARB_vertex_buffer_object" );rnrn // 获得函数的指针rn glGenBuffersARB = (PFNGLGENBUFFERSARBPROC) wglGetProcAddress("glGenBuffersARB");rn glBindBufferARB = (PFNGLBINDBUFFERARBPROC) wglGetProcAddress("glBindBufferARB");rn glBufferDataARB = (PFNGLBUFFERDATAARBPROC) wglGetProcAddress("glBufferDataARB");rn glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) wglGetProcAddress("glDeleteBuffersARB");rnrn if (isFirstCall)rn rn isFirstCall = 0;rn //分配一个缓冲区,并将顶点数据存入缓冲区rn glGenBuffersARB(1,&unVertexBuffer);rn glBindBufferARB(GL_ARRAY_BUFFER_ARB,unVertexBuffer);rn glBufferDataARB(GL_ARRAY_BUFFER_ARB,sizeof(fAxisVertexList),fAxisVertexList,GL_STATIC_DRAW_ARB);rnrn glGenBuffersARB(1,&unIndexBuffer);rn glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB,unIndexBuffer);rn glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB,sizeof(unAxisIndexList),unAxisIndexList,GL_STATIC_DRAW_ARB);rn rnrn glBindBufferARB(GL_ARRAY_BUFFER_ARB,unVertexBuffer);rn glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB,unIndexBuffer);rnrn glVertexPointer(3,GL_FLOAT,0,(char *)NULL);rn glDrawElements(GL_LINES,6,GL_UNSIGNED_INT,(char *)NULL);rnrn[/code]rnrn 本人菜鸟啊,基本就是照着教程copy下来的,rn 最后一句glDrawElements(GL_LINES,6,GL_UNSIGNED_INT,(char *)NULL); 处内存访问出错rn <em>请教</em>一下应该怎么改??
请教一个有关OpenGL的问题、、、、
如何在视图的左下角画一个坐标系,使在绘图区怎样旋转图形,都不会挡住坐标系。图形是可以移动到视图中的任何部位的,但是挡不到坐标系。
请教关于C#和OpenGL的问题
在C/C++中可以包含gl.h等等来调用OpenGLrn那么请问如何在C#中使用OpenGL呢?
请教OpenGL ES 2.0的问题
请问谁有OpenGL ES 2.0的中文资料(API, 能实现的效果等),我下载了AMD刚发布的模拟器,但找不到开发教程。
请教一个OPENGL纹理贴图的问题?
请大家帮我看看<em>问题</em>出在哪?rn下边是浩淼同学的一段程序,我想研究一下并修改自己使用,但 执行过 File=fopen(Filename,"r"); 这的时候我发现File指针的值还是0x00000000,初步判断为文件打开失败,我想打开的文件是自己修改的一个bmp格式的、大小为64*64像素的图片,不知道<em>问题</em>出在哪?rn请明白的人帮我看一下,在这里十分的感谢~~rnrnrnrnint CMubanView::LoadGLTextures()rnrn int Status=FALSE; //状态参数跟踪是否能够载入位图以及能否创建纹理rn AUX_RGBImageRec* TextureImage[1]; //设置纹理数组rn memset(TextureImage,0,sizeof(void*)*1); //清除图像记录,将指针设置为NULLrn if (TextureImage[0]=LoadBMP("it.bmp")) //载入位图rn rn Status=TRUE;rn glGenTextures(1,&m_texture[0]); //创建纹理rn rn glBindTexture(GL_TEXTURE_2D,m_texture[0]); //根据来自位图的数据创建NEAREST纹理rn glTexImage2D(GL_TEXTURE_2D, //产生的是2D纹理rn 0, //图像的详细程度,一般为0rn 3, //图像的成分,为RGBrn TextureImage[0]->sizeX/2, //图像宽rn TextureImage[0]->sizeY/2, //图像高rn 0, //图像边框rn GL_RGB, //图像是RGB三色组成rn GL_UNSIGNED_BYTE, //图像数据是无符号字节类型rn TextureImage[0]->data); //图像数据来源rn rn //采用GL_LINEAR使得纹理从很远处到离屏幕很近时都平滑显示rn glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); // 线形滤波rn glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); // 线形滤波rn rn return Status;rnrnrnAUX_RGBImageRec* CMubanView::LoadBMP(char *Filename)rnrn FILE *File=NULL;rn if (!Filename) //文件名是否存在(判断结果---文件名是存在的)rn rn return NULL;rn rn File=fopen(Filename,"r"); //读取文件rn if (File) //文件读取成功rn rn fclose(File); //关闭文件流rn return auxDIBImageLoad(Filename); //载入位图并返回指针rn rn return NULL;rn
请教一下OPENGL的简单问题
各位兄弟,请问在OPENGL中 “采用显示列表(display list)方法来包装顶点及纹理的信息”时,是怎样建立显示列表的??(我是搞directx的,由于某些原因想了解一下rnOPENGL的这个做法),请回的兄弟简单说一下
请教OpenGL中显示字符的问题
在需要在OpenGL中显示字符,我查了资料后看到了一种方法,就是用glBitmap来显示,比如字母c对应的十六进制数组为如下: rnGLubyte c_rasters[12]=0x00,0x00,0x3e,0x63,0x60,0x60, rn0x60,0x60,0x60,0x63,0x3e,0x00; rn然后我使用如下语句就可以绘制出字符c:glBitmap(8,12,0.0,0.0,8.0,0.0,c_rasters); rn那我现在想问的是我觉得绘制出来的c字符看起来有点大,因此我想把这个字符变小一点,在glBitmap中改参数的值没有用,我想是不是可以通过更改c对应的十六进制数组来改变c字符显示的大小,但是以上的十六进制数组是我从网上参考的,我并不知道该怎么改那些十六进制数来改变c字符的大小,请问各位我应该怎么做呢?非常感谢你们的回答,谢谢了!rn
请教OpenGL下显示汉字的问题
刚刚开始做游戏,但游戏做好后,去无法将汉字显示到屏幕上,真郁闷!rn虽然在以前的帖子里看到过这个<em>问题</em>的讨论,且MSDN下也有,但我把代码贴在源程序里运行时 屏幕上总是一片漆黑 各位大侠有谁能给我一个完整范例?谢谢啦!rn
openGL画等高线问题请教
我有30个控制点,现已经网格化并画出了bezier曲线,请问怎么样把曲面的等高线画出来呀?
请教 zzwu(未名)OpenGL问题!!
我想做一个飞机飞行的轨迹的图形该如何实现呢?rn可以做简单点:rn用一个实心球表示一架飞机,用一条曲线来表示飞机飞行的轨迹。rn通过一个定时器来控制飞机飞行的速度(如一个周期飞机前进了多少)。rn需要画出飞机及飞机的轨迹(不是烟雾哟)。rn我该如何做呢?rn我知道画一个立体图,也绘制曲线了,但如何让它们运动起来呢??rn飞机的下一个位置的是通过时间来确定的。rnrn能给个思路么?实现步骤如何,希望详细些!谢谢!rnrn新手上路,望多多指教!
请教Opengl中光照的问题
我在vb中用<em>opengl</em>编程rn在设置光源的时候设置了diffuse,ambient,enable等属性rn但是实际运行的时候却看不到光照的变化rn以下是我的代码,请大侠看看:rnrnglEnable glcLightingrnglEnable glcLight0rnrnglEnable GL_DEPTH_TESTrnglEnable GL_CULL_FACErnWith frmMain.glxCtl1.Lights.Item(liLight0)rn .Enabled = Truern .SetPosition 10, 0, 15rn .SetAmbient 0.1, 0.1, 0.1rn .SetDiffuse 0.8, 0.8, 0.8rn .SetSpecular 0.4, 0.3, 0.3rnEnd WithrnrnlightDiffuseColor(0) = 1rnlightDiffuseColor(1) = 1.5rnlightDiffuseColor(2) = 1rnlightPosition(0) = 15rnlightPosition(1) = 15rnlightPosition(2) = 5rnglLightfv GL_LIGHT0, GL_DIFFUSE, lightDiffuseColor(0)rnglLightfv GL_LIGHT0, GL_POSITION, lightPosition(0)rnrn
请教OPENGL捕获坐标问题
请看syy64(太平洋) 所发代码http://community.csdn.net/Expert/topic/3146/3146805.xml?temp=.4938471rnTO太平洋:你的代码中的m_hGLContext,m_pDoc,m_dModelMinX,m_dModelMaxX,m_pRoamParameter,dMouseModelX都是如何定义的。能不能给个解释说明,另外我所画的点连线,所有点都是有序号的,如何返回捕获点的序号呢,所有点的数据是放是数组中的。
opengl下模型旋转的问题请教
使用<em>opengl</em>绘制模型,旋转时围绕的是模型的坐标系,如果知道绕全局坐标系旋转的角度,如何把绕全局坐标系旋转的量等效到模型坐标系上阿?
请教关于OpenGL聚光灯的问题
代码如下:rn[code=c]rnrnclass CBoxrnrnprivate:rn int mWindowWidth;rn int mWindowHeight;rn float mAngle;rn float s;rn float c;rnpublic:rn CBox();rn ~CBox();rnrn bool init();rn bool ShutDown();rnrn void SetProjection(int width, int height);rn void Prepare(float fAngle);rn void Render();rn void Light();rn;rnrnfloat light[] = 1.0, 0.0, 0.0, 1.0;//灯光颜色rnfloat position[] = 0.0, 1.0, 0.0, 1.0;//灯光位置,为点光源rnfloat direction[] = -1.0, -1.0, 0.0;//灯光方向rnrnvoid CBox::Light()//设置灯光rnrn glEnable(GL_LIGHTING);rn glLightfv(GL_LIGHT0, GL_AMBIENT, light);rn glLightfv(GL_LIGHT0, GL_DIFFUSE, light);rn glLightfv(GL_LIGHT0, GL_SPECULAR, light);rn glLightfv(GL_LIGHT0, GL_POSITION, position);rnrn glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction);rn glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 0.0);rn glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 30.0);rnrn glEnable(GL_LIGHT0);rnrnrnfloat material1[] = 0.0, 0.0, 0.0, 1.0;//材质1不反射任何颜色rnfloat material2[] = 1.0, 1.0, 1.0, 1.0;//材质2反射所以颜色rnrnfloat x = 1.0;rnrnvoid CBox::Render()rnrn glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);rn glLoadIdentity();rn gluLookAt(2.0, -2.0, 0.0, -1.0, 1.0, 0.0, 0.0, 0.0, 1.0);rnrn Light();rnrn glMaterialfv(GL_FRONT,GL_AMBIENT, material1);rn glMaterialfv(GL_FRONT, GL_DIFFUSE, material1);rn glMaterialfv(GL_FRONT, GL_SPECULAR, material2);//使平面只有反射光rnrn glBegin(GL_QUADS);//在X轴-1出垂直X轴画一个平面rn glNormal3f(1.0, 0.0, 0.0);rn glVertex3f(-x, x, x);rn glVertex3f(-x, x, -x);rn glVertex3f(-x, -x, -x);rn glVertex3f(-x, -x, x);rn glEnd();rnrnrnrnint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,rn LPSTR lpCmdLine, int nShowCmd)rnrn WNDCLASSEX windowClass;rn HWND hwnd;rn MSG msg;rn DWORD dwExStyle;rn DWORD dwStyle;rn RECT windowRect;rnrnrnrn windowRect.left = (long)0;rn windowRect.right = (long)windowWidth;rn windowRect.top = (long)0;rn windowRect.bottom = (long)windowHeight;rnrn memset(&windowClass, 0, sizeof(WNDCLASSEX));rnrn windowClass.cbSize = sizeof(WNDCLASSEX);rn windowClass.style = CS_HREDRAW | CS_VREDRAW;rn windowClass.lpfnWndProc = MainWindowProc;rn windowClass.cbClsExtra = 0;rn windowClass.cbWndExtra = 0;rn windowClass.hInstance = hInstance;rn windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);rn windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);rn windowClass.hbrBackground = NULL;rn windowClass.lpszClassName = "OpenGL";rn windowClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO);rnrn if( !RegisterClassEx(&windowClass))rn return 0;rnrn dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;rn dwStyle = WS_OVERLAPPEDWINDOW;rnrn AdjustWindowRectEx(&windowRect, dwStyle, FALSE, dwExStyle);rnrn hwnd = CreateWindowEx(NULL, "OpenGL",rn "myOpenGL", dwStyle | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,rn 0, 0,rn windowRect.right - windowRect.left,rn windowRect.bottom - windowRect.top,rn NULL, NULL, hInstance, NULL);rnrn hDC = GetDC(hwnd);rn mBox = new CBox;rnrn if( !hwnd )rn return 0;rnrn ShowWindow(hwnd, SW_SHOW);rn UpdateWindow(hwnd);rnrn mBox->init();rnrn while( exiting )rn rn mBox->Prepare(0.0f);rn mBox->Render();rn SwapBuffers(hDC);rnrn while( PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) )rn rn if( !GetMessage(&msg, NULL, 0, 0) )rn rn // exiting = true;rn break;rn rnrn TranslateMessage(&msg);rn DispatchMessage(&msg);rn rn rnrn return (int)msg.wParam;rnrn[/code]rnrn想实现的效果就像是一个手电筒照射到一个平面,出现一个圆形的光亮区,但是这个希望的效果一直没有出现。rn1,当把聚光灯的角度调至小于30度时,突然变暗。rn glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 30.0); rn 这是什么原因?rn2,怎么才能实现手电筒的效果?rnrnrn以下图片是程序输出:rn[img=http://img.my.csdn.net/uploads/201301/05/1357357591_4182.jpg][/img]
请教关于openGL的两个问题
rn1 如何在自己画的场景中用蓝天白云图片做背景;关键是不知道如何设置场景深度,使得背景不挡住物体;rn2 如何使 用3dmax画的物体应用到openGL程序中去;有现成的工具最好!rnrn
新人请教一个openGL的问题
我不知道这个<em>问题</em>应该在网上怎么搜索,找了一晚上没找到答案,所以只好来论坛里描述一下给大家听听,帮我解决一下。rn例如我有一张PNG图片,是100*20的,我想用openGL读取的时候,把这张PNG分解成5小张20*20的纹理图,应该怎么做?rn用什么函数,不好意思,我是新手,不太清楚,现在读取图片是会了,但这个搞不定。rn还有一个<em>问题</em>,openGL怎样绘制文字,我看到网上有例子,可以调用Windows的字体库,但是我的程序开发好后,要移植到WinCE,用网上的例子可以通用吗?
Unity获取模型的顶点坐标
/// 获取模型的所有<em>顶点坐标</em>
python+opencv和四个顶点坐标test3.py
python语言,对输入的图片通过opencv手段,进行图片矫正,必须提供四个<em>顶点坐标</em>,才能完全正确矫正图片的旋转和倾斜。
python计算直角三角形顶点坐标
python计算直角三角形<em>顶点坐标</em>
在OPENGL中如何获取非隐面的顶点坐标
OPENGL在绘制过程中既然可以利用深度缓存消除模型的隐面,也就是说它在绘制前保存了非隐面的坐标坐标信息,我如何得到这些<em>顶点坐标</em>的信息?
计算长方体各个顶点坐标
已知一个长方体最大坐标和最小坐标rn求出另外6个<em>顶点坐标</em>rn最大(x,y,z)最小(a,b,c,)rnrn其余六个坐标计算公式,求解rnrnrnc#计算逻辑
Unity测试模型顶点坐标
测试导入unity的模型<em>顶点坐标</em>数据 导入模型
android OpenGL
一个<em>android</em>关于3d的建模与贴图,可以参考下
android openGL
<em>android</em> operGL最好的学习例子。。
android OPENGL
这是<em>android</em>中3D绘图的应用,能有助于开发者很好的学习,并且这是纯真的源码。
Android OpenGL
《<em>android</em>应用开发揭秘》第12章Android OpenGL开发基础中的代码。
android—openGL
<em>android</em>资源描述资源描述课程资源C++方向关键词
android openGl
Android 开发OpenGL相关技术.
android opengl
<em>android</em> <em>opengl</em><em>android</em> <em>opengl</em><em>android</em> <em>opengl</em><em>android</em> <em>opengl</em><em>android</em> <em>opengl</em><em>android</em> <em>opengl</em><em>android</em> <em>opengl</em>
android opengl 2d纹理的问题
我想在屏幕上贴一张纹理,不过没有成功,屏幕只显示黑色,环境<em>android</em> 2.2。rnrender类代码如下:rn[code=Java]rnpublic final class RenderView extends GLSurfaceView implements GLSurfaceView.Renderer rn public RenderView(Context context) rn super(context);rn // TODO Auto-generated constructor stubrn bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);rn this.setRenderer(this);rn rnrnrn private static final String TAG = "RenderView";rnrn private Bitmap bitmap;rn rn /** Renders a frame of the UI. */rn // @Overridern public void onDrawFrame(GL10 gl1) rnrn gl1.glClear(GL11.GL_DEPTH_BUFFER_BIT);rn gl1.glEnable(GL11.GL_SCISSOR_TEST);rn gl1.glScissor(0, 0, getWidth(), getHeight());rnrn //gl1.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);rn gl1.glEnable(GL11.GL_BLEND);rn ((GL11Ext)gl1).glDrawTexfOES(0, 0, 0, bitmap.getWidth()*2, bitmap.getHeight()*2);rn gl1.glDisable(GL11.GL_BLEND);rn rn rnrn @Overridern public void onSurfaceChanged(GL10 gl, int width, int height) rn // TODO Auto-generated method stubrn rn rn int[] textures = new int[1];rnrn @Overridern public void onSurfaceCreated(GL10 gll, EGLConfig config) rn // TODO Auto-generated method stubrn GL11 gl = (GL11) gll;rn //Generate one texture pointer...rn int[] cropRect = 0, bitmap.getHeight(), bitmap.getWidth(), -bitmap.getHeight() ;rnrn // Upload the bitmap to a new texture.rn gl.glGenTextures(1, textures, 0);rn gl.glBindTexture(GL11.GL_TEXTURE_2D, textures[0]);rn gl.glTexParameteriv(GL11.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, cropRect, 0);rn gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP_TO_EDGE);rn gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP_TO_EDGE);rn gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);rn gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);rn GLUtils.texImage2D(GL11.GL_TEXTURE_2D, 0, bitmap, 0);rn rn //Clean uprn bitmap.recycle();rn rnrnrnrn[/code]
【Android】openGL单位光的问题
所谓单位光就是3D坐标内某光源在(x,y,z)点上,光向外散射。光源是一个点。 所谓单向光就是从一个方向来的平行光。光源是一个面。
android opengl es播放视频问题...
目前有个需求:在<em>opengl</em>中播放视频。rnrn看了hene的第35章,但现在有个<em>问题</em>:怎么在<em>android</em>中得到一个视频的一张张位图,以及位图的时间。rnrn请各位帮帮忙!!!昨天到现在,都每完成,<em>opengl</em>实在是刚上手。
Javascript实现的日期下拉菜单下载
用Javascript实现日期下拉菜单,可以修改日期的范围等。 相关下载链接:[url=//download.csdn.net/download/liaoyueli/2109540?utm_source=bbsseo]//download.csdn.net/download/liaoyueli/2109540?utm_source=bbsseo[/url]
blog多用户,jsp+javaben+mysql下载
不错,新手可以学习下不错,新手可以学习下 由于上传大小限制,里面少了2个struts2的包,大家自己加下这两个struts-taglib-1.3.10.jar +struts-tiles-1.3.10.jar 相关下载链接:[url=//download.csdn.net/download/wky65007098/3382270?utm_source=bbsseo]//download.csdn.net/download/wky65007098/3382270?utm_source=bbsseo[/url]
K均值分类,用C++实现的,遥感算法下载
K均值分类,遥感中分类的重要算法,用于监督法分类,图像处理相关的内容 相关下载链接:[url=//download.csdn.net/download/selgreen/3529482?utm_source=bbsseo]//download.csdn.net/download/selgreen/3529482?utm_source=bbsseo[/url]
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo
我们是很有底线的