opengl相关内容

如何制作具有透明背景的 OpenGL 渲染上下文?

渲染上下文的背景通常是纯色(黑色或其他颜色,见下图): 我想知道是否可以设置一个没有装饰和透明背景的窗口,同时允许我在其上渲染 OpenGL 内容. 这会给人一种三角形漂浮在屏幕上的错觉.透明背景应该能让您看到桌面或它背后的其他应用程序. 能否用源代码举例说明? 平台:Windows(仅限win32) 解决方案 在一个不成功的赏金上花费了一些声誉以在这个问题上获得一 ..
发布时间:2021-12-02 08:18:35 其他开发

没有递归光线追踪就不可能反射和折射?

我正在使用 GLSL 计算着色器编写基于 GPU 的实时光线追踪渲染器.到目前为止,它运行得非常好,但是当涉及同时具有反射和折射时,我偶然发现了一个看似无法解决的问题. 我的逻辑告诉我,为了在物体(例如玻璃)上进行反射和折射,光线必须一分为二,一条光线从表面反射,另一条光线通过表面折射.这些光线的最终颜色将根据某个函数进行组合,并最终用作光线源自的像素的颜色.我的问题是我不能在着色器代码中分 ..
发布时间:2021-12-01 15:19:52 C/C++开发

OpenGL - OBJ 中的顶点法线

我想知道如何将顶点法线用于闪电效果?目前我所拥有的是我可以将顶点和纹理坐标发送到着色器并使用它们,但是对于法线,我不知道如何在着色器程序中使用它们.以下是我目前所拥有的. //顶点着色器vec4 vert 中的布局(位置 = 0);vec4 颜色的布局(位置 = 1);vec2 texcoord 中的布局(位置 = 2);统一 mat4 m_model;统一 mat4 m_view;统一 mat ..
发布时间:2021-12-01 15:00:43 C/C++开发

VR中的着色器分析

我想创建一个这样的着色器,它接受世界坐标并创建波浪.我想分析视频并了解所需的步骤.我不是在寻找代码,我只是在寻找有关如何使用 GLSL 或 HLSL 或任何其他语言实现代码的想法. 这里提供低质量和 fps 的 GIF,以防链接断开. 这是片段着色器: #version 330 核心//来自顶点着色器的内插值在 vec2 紫外线中;在 vec3 Position_worldspace ..
发布时间:2021-11-30 17:05:16 其他开发

增强现实OpenGL+OpenCV

我对 OpenCV 非常陌生,对 OpenGL 的经验有限.我愿意在棋盘格的校准图像上覆盖 3D 对象.有什么提示或指导吗? 解决方案 基本的想法是你有 2 个摄像头:一个是物理的(你用 opencv 检索图像的那个),一个是 opengl 的.您必须对齐这两个矩阵. 为此,您需要校准物理相机. 首先.您需要一个畸变参数(因为每个镜头或多或少都有一些光学畸变),并使用这些参数构 ..
发布时间:2021-11-30 17:04:14 其他开发

视野 + 纵横比 + 来自投影矩阵的视野矩阵(HMD OST 校准)

我目前正在开发增强现实应用程序.目标设备是光学透视 HMD,我需要校准其显示器以实现虚拟对象的正确配准.我使用 SPAAM 的实现 for android 来做到这一点,结果对于我的目的来说足够精确. 我的问题是,校准应用程序在输出中给出了一个 4x4 投影 矩阵,例如我可以直接与 OpenGL 一起使用.但是,我使用的增强现实框架只接受格式视场 some parameter + Aspec ..
发布时间:2021-11-29 09:27:15 其他开发

在 iPhone 上使用 alpha 通道捕获 EAGLview 内容

已经在这个问题上苦苦挣扎了很长一段时间,到目前为止还没有找到答案.基本上,我想要做的是捕捉我的 EAGLview 的内容,然后用它来将它与其他图像合并.无论如何,主要问题是,将我的 EAGLview 中的所有透明内容保存到相册或将其放入 UIImageView 时都会呈现不透明.让我和你分享一些代码,我在别处找到的: - (CGImageRef) glToUIImage {无符号字符缓冲区[32 ..
发布时间:2021-11-27 08:19:40 移动开发

如何在 OpenGL 中使用 alpha 透明度?

这是我的代码: void display(void);int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);glEnable(GL_BLEND);glutIn ..
发布时间:2021-11-27 08:18:51 C/C++开发

0xC0000005:访问冲突执行位置0x00000000.(OpenGL)

我已经查看了关于堆栈的其他几个问题,它提到取消引用空指针,但我不明白这是否适用于我的代码. 当尝试生成 VAO 时,代码在 World.cpp 的第 33 行崩溃: glGenVertexArrays(1, &vao); 给我标题中显示的错误.如果我注释掉该行,程序运行良好. PhaseEngineMain.cpp #include "PhaseEngineMain.h"#inc ..
发布时间:2021-11-26 20:05:44 C/C++开发

什么是相当于 glBegin/glEnd 的现代 OpenGL

我正在为 OpenGL 构建一个图形 API,它基于基本的调用绘制图形样式.基本上,不是将数据存储到 GPU 中,并使用它的句柄调用它,而是提供信息来绘制它应该绘制的每次更新的内容.我知道它很慢,但它很简单,而且适用于非性能关键应用程序.无论如何,是否有任何现代的 glBegin/glEnd 等价物?它不必调用每个顶点,而是一种我可以在每次更新时发送数据的方式,而无需将顶点存储在 gpu 中? ..
发布时间:2021-11-26 17:30:52 C/C++开发

想要一个 OpenGL 2D 示例(VC++,画一个矩形)

我想创建一个高性能的 2D 程序. 我使用的是 VC++2008.假设我已经创建了主窗口.我想要的是在主窗口的客户区绘制一个红色矩形(左上角:10,20,右下角:200, 300),就像 FillRect() API 所做的那样,但使​​用 OpenGL. void InitOpenGL(HWND hwnd){....//我该怎么办?//仅用于 2D 绘图,且 (0,0) 应为左上角.}/ ..
发布时间:2021-11-26 13:44:47 其他开发

如何使用 OpenGL 3.x VBO 渲染动态世界?

虽然对于 OpenGL 3.x 本身的最新引用似乎很少,但 OpenGL 的实际低级操作相对简单.然而,我什至在尝试将如何操纵 VBO 以呈现动态世界的概念化时遇到了严重的麻烦. 显然旧的立即模式方式不适用,但我该去哪里呢?我是否编写某种场景结构,然后将其转换为一组顶点并将其流式传输到 VBO,我将如何存储翻译数据?如果是这样,那看起来代码明智吗? 基本上真的不确定如何继续. 解 ..
发布时间:2021-11-26 13:39:39 其他开发

如何制作平滑的相机跟随算法?

我正在使用 LibGDX (Java) 制作游戏. 我需要相机跟随一个快速移动的角色.最简单的方法就是这样写: this.getCamera().position.set(obj.x, obj.y, 0); 但是,有没有什么算法可以让这更流畅?就像当相机不那么严格并且总是有点晚时:角色向右快速移动,相机稍微延迟跟随,或者如果您突然出现在很远的地方,相机不会立即传送而是以最高速度向您移动靠 ..
发布时间:2021-11-26 13:38:34 Java开发

如何在着色器中制作波浪变形效果?

我想制作这样的波浪变形效果: 但我只能创建正常的正弦波. 这是我的片段着色器: precision mediump float;不同的 vec2 v_texCoord;统一的 sampler2D s_baseMap;vec2 正弦波(vec2 p){浮动圆周率 = 3.14159;浮动 A = 0.15;浮动 w = 10.0 * pi;浮动 t = 30.0*pi/180.0;浮动 ..
发布时间:2021-11-26 13:33:22 其他开发

在任意宽度的两点之间绘制矩形

当用户在触摸屏上滑动手指时,我试图在两个 (2D) 点之间画一条线.为此,我计划在上一次触摸更新的 X 和 Y 与最新触摸更新的 X 和 Y 之间的每次触摸更新上绘制一个矩形.当用户在屏幕上滑动手指时,这应该会创建一条连续的实线.但是,我也希望这条线具有任意宽度.我的问题是,我应该如何计算每个矩形(x1、y1、x2、y2)所需的坐标? -- 另外:如果有人有任何关于我如何将抗锯齿应用到 ..
发布时间:2021-11-26 13:26:41 其他开发

OpenGL 拉伸形状 - 纵横比

我的 openGL 视图的大小为(可以说..)800(宽度)x600(高度).然后我得到了一个二维坐标对象: 0.0 , 0.00.1 , 0.00.1 , 0.10.0 , 0.1 正如你所理解的,这应该是一个正方形(基于类比).但是在我的 openGL 视图上打印出这个拉伸.现在,我明白为什么会这样了.它基本上是因为我正在研究 -1,1 的默认矩阵.由于我的 800x600 分辨率没有 1 ..
发布时间:2021-11-26 13:26:24 其他开发

如何在 GLSL 中实现 2D raycasting 光效

这最初是由@sydd 此处提出的.我对此很好奇,所以我尝试对其进行编码,但在我回答之前它已被关闭/删除,所以它在这里. 问题:如何重现/实现这个 2DGLSL 中的光线投射照明效果? 效果本身从鼠标位置向各个方向投射光线,累积影响像素强度的背景贴图 alpha 和颜色. 所以输入应该是: 鼠标位置 背景 RGBA 贴图纹理 解决方案 背景图 好的,我创建 ..
发布时间:2021-11-26 13:21:15 其他开发

将地球纹理贴图应用到球体

到目前为止,我一直在尝试在太阳系的 openGL(使用 JOGL)中实现 3D 动画,我有 5 个不同大小的行星,但我似乎遇到的问题是我无法在Sphere 谁能帮我看看它是怎么做的? 这是我目前在我的 Display 方法中的代码: @Override公共无效显示(GLAutoDrawable可绘制){GL2 gl = drawable.getGL().getGL2();GLU glu = ..
发布时间:2021-11-25 20:14:48 Java Web开发

为 64 位 Windows 寻找 OpenGL 的安装

我正在尝试从 videotutorialsrock.com 站点开始进行 opengl 编程.它要我安装 GLUT 和 OpenGL SDK.我能够成功下载 GLUT 但他在此页面上的链接http://www.videotutorialsrock.com/opengl_tutorial/get_opengl_setup_windows/text.php不适用于我的 64 位 Windows 7 安 ..
发布时间:2021-11-25 07:12:45 C#

在 64 位操作系统中使用 glMultiDrawElements

我最近从 32 位环境迁移到 64 位环境,除了一个问题之外,它已经顺利进行了:glMultiDrawElements 使用了一些在 64 位操作系统下如果不进行一些调整就无法工作的数组. glMultiDrawElements( GL_LINE_LOOP, fCount_, GL_UNSIGNED_INT,reinterpret_cast( iOffset_ ),网格().faces().si ..
发布时间:2021-11-25 06:48:41 C#