另一个视口的gl\u FragCoord
您好,我正在尝试在 LWJGL 中实现阴影映射,但遇到了问题,现在卡住了.我已经完成了深度映射,渲染到纹理等,但我被困在最重要的部分,使用所说的阴影贴图,我的问题是,我需要找出我要着色的片段在阴影贴图上的位置. 例如: 我有一个名为 A 的片段,它位于坐标 X、Y、Z. 它从灯光的视口渲染到我的阴影贴图上. 当我在坐标 S、T、U 处从不同的相机渲染场景时.例如,我现在需要找出片段 A 在阴影贴图上的位置,因此我可以从中获取 Z 值,并将它与另一个 Z 值进行比较,我将使用渲染阴影贴图. 问题是我不知道如何在阴影贴图上获得 A 的位置,这意味着我无法判断它是否在阴影中.如果有人能帮我计算一个点的阴影贴图坐标,那将不胜感激. 对不起,如果它有点长而且过于复杂,但我试图尽可能详细地解释我的情况.如果您想对我想要得到的内容进行更简单的解释:我基本上需要替换 gl_FragCoord ,它可以用于与不同的相机/视口的位置/大小/等相关.找出片段在渲染到纹理上的位置.
110 2022-07-19
编程技术问答社区
Opengl部件动画
有没有人知道如何用opengl制作一个简单的动画,显示正在组装的三个模型...我尝试过并且得到了奇怪的结果...以前没有做过动画,而且非常令人困惑..没有好的教程在线... 我尝试使用空闲函数来更改其中一个模型的 x 位置的值,但是……尽管我对它们施加了条件,它仍然保持飞行 谁能提供一个简短的片段来说明我如何实现这一目标..这将非常有帮助...或指导我学习一个很好的教程... 非常感谢 解决方案 我们可以看看你的代码 madubuko - 可能只是 x 的递增速度比你想象的要快得多 - 因此对象飞出屏幕(你可能会得到很多 > 超过每秒 100 帧) 马丁
70 2022-07-19
编程技术问答社区
物体的颜色不同于我指定的wht,可能是背景图像的bc,如何解决这个问题?
我将图像显示为我的游戏的背景. 现在如果我显示任何图像或多边形等,它的颜色与我指定的不同,如何解决这个问题? 解决方案 请在绘制前检查混合是否启用多边形. 混合将创建帧缓冲区(背景图像)和当前图像中可用的先前图像的中间颜色. 请在渲染多边形和其他图像之前调用 glDisable( GL_BLEND ). 在纹理映射中还有一个棘手的问题,如果你没有正确指定纹理环境,它会考虑 GL_MODULATE 纹理环境.默认纹理环境是 GL_MODULATE,它将纹理颜色乘以图元(或照明)颜色. 例如,您没有更改纹理环境,而是使用 glColor 更改颜色. glColor3f( 1.0, 0.0, 0.0 ); //纹理映射代码. //此纹理映射输出红色并忽略绿色和蓝色通道. 这个问题可以通过提供合适的纹理环境参数来解决. glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE ); 您的
174 2022-07-19
编程技术问答社区
在Ubuntu上编译OpenGL c++
你好! 我参加了一个计算机图形课程,并且必须在 c++ 中使用 OpenGL 进行一些编程.我试图在我的家用电脑(系统:ubuntu)上运行我的程序,但编译器给了我两个错误: g++ -Wall myProg.cpp -o runme -lglut -lGLU -lGLEW (这是我们在课堂上编译它的方式,它在那里工作) /usr/bin/ld:/tmp/ccJmqaFS.o: 未定义对符号“glClear"的引用 和 //usr/lib/nvidia-331/libGL.so.1:添加符号时出错:命令行中缺少 DSO 我已经在google quiete 中搜索了很长时间的错误,但没有成功,所以我希望有人能给我一个提示. (安装了 Glut und Glew,直接渲染工作,glxgears 也做了它应该做的,即显示齿轮,以不同的颜色旋转) 谢谢! Roman 解决方案 你在哪里安装了 OpenGL 库?您可能需要使用 -L 选项告诉链接器它们在哪里.
232 2022-07-19
编程技术问答社区
OpenCV赢得#39;t工作
我在学习本教程时遇到了一些问题:- http://www.scribd.com/doc/3496786/OpenCV-Installation-and-Getting-Started-Guide[^] 在visual studio中尝试了以下代码 #include /* required to use OpenCV */ #include /* required to use OpenCV''s highgui */ void main(int argc, char *argv[]) { IplImage* image=0; /* pointer to an image */ if(argv[1] != 0) image = cvLoadImage(argv[1], 1); // 1 for color if(image != 0) { cvNamedWindow("Display", CV_WINDOW
248 2022-07-19
编程技术问答社区
使用MFC C++和OpenGL
您好,我的问题更具理论性.OpenGL图形库与MFC一起使用好吗?MFC 是否仍在编程中使用,或者它已经太旧了?我想知道这些答案,如果有人回答我将不胜感激.谢谢! 解决方案 1.OpenGL 与 MFC 配合得很好. 2. MFC 有很多工作要做. 我认为学习OpenGl 没什么不好.但是在必要的地方使用它. 我在 OpenGL 中工作只是为了好玩.
94 2022-07-19
编程技术问答社区
在win32api中嵌入glut应用程序
我在win32中做了一个opengl应用程序,只使用平台库. 它的执行速度非常慢,所以我决定使用 glut 库执行相同的 opengl 项目 opengl 代码在 glut 中运行良好,但在 win32 中运行良好. 我以为是因为wm-paint所以我用计时器做了,但甚至没有效果 玩像素结构. 那么如何在win32中集成opengl代码而不损失性能 解决方案 画完框后请调用::ValidateRect(m_hRenderingWindow, 0);对应的窗口.m_hRenderingWindow 是您绘制 opengl 场景的窗口.0 是为了避免整个区域下次更新. 请尝试这样: LRESULT CALLBACK WindowProc( HWND hWnd,UINT 消息,WPARAM wParam,LPARAM lParam )切换( msg ){case WM_PAINT:{……渲染场景();// 准备你的句子.ValidateRect( m_hR
94 2022-07-19
编程技术问答社区
将项目从VS2008转换为VS2010
嗨.我在vs2008中用win32 C++写了一个openGL项目 现在,我想在 vs2010 中继续我的项目 但是VS2010在转换项目时给我一个错误 错误: 无法启动项目“目录项目\...\地图编辑器.exe"此应用程序无法启动,因为应用程序配置不正确.请查看清单文件以了解可能的错误.重新安装应用程序可能会解决此问题. 请帮助我! 解决方案 如果您的项目构建正确,但没有像我怀疑的那样执行,那么您需要确保您的应用程序配置文件在您的输出目录.也许将适当的配置文件复制到输出目录的后期构建过程是问题? 我认为问题出在清单上.我记得在转换我的项目时遇到了类似的问题.基本上,你需要在VS2010中创建一个新的Win32项目,然后打开wits链接器属性并将配置属性->链接器->清单文件中的东西复制到你的程序中. 对于 Win32 项目,您应该在链接器命令行中包含以下字符串: /MANIFESTDEPENDENCY:"type='Win32' name='Micros
122 2022-07-19
编程技术问答社区
c语言游戏开发++
大家好, 我知道在这里问不是一件好事,但是在网上搜索了很多之后,我不得不来这里问. 如果您认为这不是在这里问的问题,请提前道歉. 我想学习c++的游戏编程. 请建议我在游戏开发的任何地方按系列名称浏览系列教程/书籍/视频. 如果您知道您已经访问/阅读/观看的任何内容,请提供. 请不要只是通过在谷歌上搜索来发布链接参考.建议您是否已阅读至少一两个排队点. 任何帮助将不胜感激. 我知道你们可以帮忙. 对于我的编程背景.我有 C#MVC、C#ASP.NET、C#WINFORMS 方面的工作经验,并且了解 C++ 的基本知识. 那么现在从哪里开始. 如有任何帮助,提前致谢. 解决方案 游戏编程简单. 有大量可用的工具包:http://en.wikipedia.org/wiki/List_of_game_engines[^]. 主要的难点是创造和设计游戏“体验",并且尽可能远离电脑. 游戏故事板,平面设计,关卡设计,音乐/声音舞台,...
194 2022-07-19
编程技术问答社区
如何在openGl中获取文本框?
我需要在 openGl 中获得一个文本框来完成我的小项目.伙计们请发布你的代码 :-) 解决方案 你可以使用 GUIOpenGL 的库.参见,例如 MyGUI[^].
94 2022-07-19
编程技术问答社区
使用c绘制三维图形#
你好^_^ 我想用c#做一个3d画家. 首先,我想显示 3 个面板 - XY、XY 和 YZ 视图.用户将在每个面板中绘制他想要的内容.之后,他将单击一个按钮以组合 3 个视图并从这些面板中获取 3d 模型.他也可以自由地渲染这个模型. 我怎样才能做到这一点?什么是最合适和最简单的语言来做到这一点?(Open gl, XNA, WPF 等)? 这张照片将说明我想要什么: 视图: 3D 视图 组合 3 个视图后的 3D 对象:3D 对象 任何额外的信息都会有所帮助. 谢谢 :) 解决方案 三角 FarPlaneDistance="100" LookDirection="-12,-11,-10" UpDirection="0,1,0" NearPlaneDis
746 2022-07-19
编程技术问答社区
Opengl鼠标拾取问题。
以下是完整代码,Point3D是一个只有三个值的类:x,y,z代表坐标. 首先是用鼠标在屏幕上画一些点.然后用线将它们连接起来.那我只想把这些台词捡起来 但它不起作用. 有人可以帮我吗?我挣扎了好几天.我累死了!!! #include "StdAfx.h" #include #include #include #include #include #include #include #include #include "Point3D.h" using namespace std; #define BUFSIZE 512 int screenWidth=340; int screenHeight=280; vector P; static int pickUpModel=0; /
274 2022-07-19
编程技术问答社区
如何在java3d中创建正确的对象模型转换?
我加载了一个对象模型(.obj),并创建了一个地图来列出我使用 Blender 分成几部分的文件的内部对象,并调用它们来创建旋转.我确实看到了某种运动,但只有一次,它可能只是一个小故障.一旦我可以创建运动,我可以轻松地调整所涉及的数学,但到目前为止我无法获得运动,我担心我的代码可能需要一些调整.我在想这是一件小事,我只是瞥了一眼过去. 对象模型从分离的模型中正确加载,没有错误. import java.awt.BorderLayout; import java.awt.Color; import java.awt.Frame; import java.awt.GraphicsConfiguration; import java.io.FileNotFoundException; import java.util.Map; import javax.media.j3d.Alpha; import javax.media.j3d.BoundingSphere; import j
118 2022-07-19
编程技术问答社区
示例代码在运行时无法读取/打开文件
void loadTriangles() { QFile f("C:Test/world.txt"); if(!f.open(QIODevice::ReadOnly)) { if(!QFile::exists(f.fileName())) { QMessageBox::information(this, "错误", QString("文件 %1 不存在").arg(f.fileName())); } 其他 { QMessageBox::information(this, "错误", QString("打开文件%1失败:错误%2").arg(f.fileName(), f.error())); } } 其他 { //从文件中读取 QTextStream ts( &f ); 顶点 v[3]; int vcount = 0; bool allok,好的; 而(!ts.atEnd()) { QString curLine = ts
96 2022-07-19
编程技术问答社区
opengl中的体积渲染?
我是 OpenGl 的新手,我正在尝试将 ct scan 加载到 openGl 中并创建 3d 模型.我找到了行进立方体,但在 opengl 中没有任何东西可以实现或开始.任何建议帮助都将受到欢迎. 我尝试过的: openGl 教程中的行进立方体.(没有找到) 我在源代码中找到了一个项目并运行它,但似乎很难编码西澳大利亚有我见过的最好的外行解释和代码,用于行进立方体. 对标量场进行多边形化(行进立方体)[^] 他向您展示了正在发生的事情以及代码. 本质上,您从通常是点云的框开始,然后使用它们之间的 45 度面开始细分每个面(他的图片使其更清晰).只要在面之外没有任何意义,您就可以一遍又一遍地继续该过程,将立方体向下移动并越来越细分. 当您不再可以折叠行进立方体时,您剩下的就是适合云点体积的形状.这就是该过程得名的地方,您拥有完全包含随机点集(体积)的表面渲染.它大量用于医学成像,他们从 CRT 扫描构建点云,然后他们想要点云的表面网格.
252 2022-07-19
编程技术问答社区
delta机器人的可视化
我需要在 Visual Studio 2010 (C#) 中使用 OpenGL 可视化 Delta 机器人.我已经编译了 SharpGL 并将 .dll 文件添加到引用中.为了可视化 Delta 机器人,我需要绘制 2 个三角形和 6 条线.我似乎找不到任何关于如何解决这个简单问题的信息,有人可以帮帮我吗? 解决方案 查看下面的链接.它不是专门针对 c# 的,但这并不重要,因为一切都是通过调用 gl api 完成的.初始化是最重要的事情之一,否则您将什么也看不到.这可能会非常令人困惑,尤其是当您刚刚进入 opengl 的世界时. http://basic4gl.wikispaces.com/2D+Drawing+in+OpenGL[^] 祝你好运!
168 2022-07-19
编程技术问答社区
使用opengl在c++中构建迷宫需要帮助
这是我的解决方案路径代码,我使用了随机 fn,但每次它产生相同的结果.并显示了 2,3 条路径,但正确的迷宫包含一条解决方案路径和如此多的错误路径,我该怎么做?好心人告诉我 void SolutionPath() { int x=0,y=0,tempX,tempY,currentX,currentY,legSize=3,direction=RIGHT; while(x { while(legSize-- && x { currentX = x; currentY = y; switch(direction) { case LEFT: mazeArray[x][y--]= SOLUTION_PATH;
100 2022-07-19
编程技术问答社区
如何在opengl中使用精灵表制作动画?
我通过图像做动画,但我想通过 spritesheet 来做 解决方案 这个呢: http://www.gamedev.net/page/resources/_/technical/opengl/rendering-efficient-2d-sprites-in-opengl-using-r2429[^]
276 2022-07-19
编程技术问答社区
如何使用opengl禁用c++中窗口的最大化按钮?
此代码创建一个可以最小化和最大化的窗口,但我想禁用最大化按钮.我该怎么办? glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowSize(windowWidth,windowHeight);glutInitWindowPosition(50,50);glutCreateWindow("gaMe"); 解决方案 我现在忘记了如何获取 GLUT 窗口的句柄(如果 GLUT 确实包含执行此操作的方法),但通常以下代码将执行此任务: long dwStyle = GetWindowLong(hwnd, GWL_STYLE);dwStyle ^= WS_MAXIMIZEBOX;SetWindowLong(hwnd, GWL_STYLE, dwStyle); 1.获取当前窗口样式 2.切换最大化框位 3.将新样式发送回窗口 您只需要 (a) 让 GLUT 为您提供此窗口的
216 2022-07-19
编程技术问答社区
在win32 c++窗口上加载dll中的opengl应用程序
朋友们好 我创建了一个 opengl 应用程序(移动颜色三角形)并完美运行(使用 glut). 我想把opengl应用程序代码打包成dll. 另一个新的 win32 应用程序将加载 dll 并创建一个新的空白窗口,现在我想将 dll 中的代码运行到由 win32 应用程序创建的空白窗口中. ___我的问题是: opengl 应用程序已经在其窗口中运行(使用 glut).我以某种方式希望它在 win32 应用程序窗口而不是默认(过剩)窗口中运行. 解决方案 你好. 我不久前做过这样的事情.源代码很长,现在已经是午夜了——我太累了,无法编制一份让自己从 GLUT 中解脱出来所需的步骤列表——或者更重要的是,用 openGL 在你自己的窗口中绘图. 您可能希望查看此 zip 中的文件:在不使用 glut 的情况下使用 openGL 绘图[^] 以下几点值得注意: 1) HDC 是一个全局的,因为它在为 GL 设置准备好的窗口时使用,它也用于
98 2022-07-19
编程技术问答社区