问题标签 [opentk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
858 浏览

ios - OpenGL ES (MonoTouch) - gluUnProject 的手动实现困难

我在其他地方看到过同样的话题,但在大多数情况下,解决方案提供商正在处理 2D(正交)投影,因此他们忽略了 Z 值。我的世界有以下特点:

  1. 透视投影
  2. 相机的“向上”向量始终为 {0, 1, 0}
  3. 相机的 Z 坐标始终为正(朝向 Z=0)
  4. 我试图确定命中点的平面是 Z=0

我正在使用 gluUnProject 的端口,虽然我认为我的端口实现是合理的,但肯定有问题。不过,我希望向社区提出的问题是,我下面的算法是否正确。我正在确定 winZ=0(近平面)和 winZ=1(远平面)的世界坐标。然后我从这两个点确定射线,对其进行归一化,并确定该射线的 Z 坐标在什么值“t”处将为 0(在什么点与 Z=0 平面相交,这就是我所追求的) . 然而,问题是当我在原点 (0,0,0) 附近单击时,这是可行的,但是一旦我开始远离原点单击,错误就会增加(例如,如果正确的世界坐标应该是 50、0、 0 根据下面的计算,它们实际上是 85, 0, 0。

如果下面的这个过程是合理的,那么我可以开始研究我的 gluUnProject 实现。

0 投票
5 回答
3230 浏览

c# - C# - Convert.ToSingle() 的更快替代方案

我正在开发一个从文本文件中读取数百万个浮点数的程序。该程序在我正在设计的游戏中运行,因此我需要它快速(我正在加载一个 obj 文件)。到目前为止,加载一个相对较小的文件大约需要一分钟(没有预编译),因为 Convert.ToSingle() 的速度很慢。有没有更快的方法来做到这一点?

编辑:这是我用来解析 Obj 文件的代码

http://pastebin.com/TfgEge9J

0 投票
1 回答
1144 浏览

c# - 斜坡上的碰撞检查

我正在开发一个新游戏,并试图检测玩家(在斜坡上)是否根据他们相对于斜坡坐标的坐标与给定的网格发生碰撞。我正在使用这个功能,它似乎不起作用(斜率似乎太小或什么的)

有什么建议么?

样本输出:

59.86697
6.225558 2761.331
68.3019 度坡度
59.86698,46.12445
59.86698
6.225558 2761.332
0度坡度


不应该下 斜坡


编辑:部分解决了问题。斜坡检测有效,但现在我可以穿墙了???

0 投票
1 回答
136 浏览

c# - 在 OpenTk 项目中添加撤消选项

嗨,我正在制作画笔之类的东西,它可以在其中绘制一些基本形状,glcontrol现在我想添加撤消选项,我真的不知道这将如何工作,所以请给我任何提示

0 投票
1 回答
607 浏览

c# - 纹理使整个场景变成黑白?开放式TK

我有一个纹理,它是 256x256 像素 jpg 中的 4x4 网格。如果我使用那张图片作为我的纹理,我的整个场景就会变成黑白。但是,如果我使用不同的图案(棋盘格),场景又会出现颜色。如果这与它有关,我确实在 GIMP 中制作了第二个纹理。我有很多代码,所以如果有人知道可能是什么问题,那就太棒了。否则,我会将代码粘贴到 bin 中,以便您可能找到我错过的一件事,哈哈。

基本上,我只是按照 StencilCSG OpenTK 示例来加载 jpg。我还为纹理使用了环绕模式。似乎如果我只是使用谷歌图片中的一些随机纹理,它可以工作,但我自己的纹理使它全是黑白的。我认为这与 GIMP 如何将文件保存为 SRGB 但 idk 有关。

编辑:

在我决定发布问题后,我立即找到了解决方法。我只是在渲染纹理正方形后禁用纹理。我找到了一个关于 opengl 纹理的常见问题解答,上面说在需要时禁用和启用。这行得通,但我认为您不需要这样做。无论如何,我仍然很想知道幕后发生了什么让我的场景变成黑白的。

0 投票
2 回答
6977 浏览

c# - 如何在 OpenTK 中更改视口分辨率

我正在使用 OpenTk GameWindow。我一直在为我的项目添加图形设置。但我无法弄清楚如何在运行时正确更改分辨率或进入或退出全屏模式。

有人可以解释在游戏运行时更改分辨率和/或全屏状态的正确程序吗?

使用WindowState = WindowState.Fullscreen;WindowState = WindowState.Fullscreen;工作,但他们修改查看区域并设置 GL.Viewport 并不能解决它。

我目前正在更改显示器分辨率DisplayDevice.GetDisplay(DisplayIndex.Default).ChangeResolution

0 投票
3 回答
1178 浏览

c# - VBO 或显示列表 - GPU 兼容性

我正在开发一个新的 OpenGL 应用程序,并且知道显示列表将在 OpenGL 3.1 中被弃用(以及许多其他有用的功能,(对我来说)这似乎有点傻)并被顶点缓冲区对象取代。我在 NVidia 卡上使用 VBO 成功绘制了一个三角形,但该示例无法在我上网本的英特尔芯片上运行,因为它不支持 glGenBuffers。OpenGL 中似乎存在一个关键缺陷(新旧 GPU/GMA 之间的兼容性中断)。作为一家小型企业,我的游戏需要与尽可能多的系统兼容,但我不希望我的程序无法在较新的显卡上运行(因为它依赖于显示列表,这些显示列表已从 OpenGL 4.1 中删除)规格)。这将为我提供最广泛的显卡支持(旧的和新的)。显示列表,

0 投票
3 回答
3467 浏览

c# - 使用或不使用 VSync

我正在决定是否将 VSync 用于我一直在使用 OpenGL 开发的新游戏。目标是为用户提供最佳的游戏体验,并在性能和质量之间取得良好的平衡。该游戏设计用于在较旧的(英特尔/上网本)计算机和较新的(NVidia/i7 台式机)计算机上运行。但是,我知道 VSync 的目的是防止撕裂;即使关闭了垂直同步,我也无法重现这个撕裂问题。提供最佳体验;应该打开还是关闭 VSync?

0 投票
1 回答
1413 浏览

c# - 如何在现有的 OpenGL 项目中嵌入 SDL 视频

我正在开发一款 OpenGL 游戏,并希望在游戏中的 3D 表面上播放视频。SDL 似乎是视频播放的绝佳选择,但是否可以在现有 OpenGL 上下文中创建表面?我该怎么做呢?

0 投票
1 回答
1516 浏览

c# - 使用 OpenTK/MonoTouch 从顶点列表中绘制?

这是一个非常简单直接的问题,我意识到这一点,但我一直在考虑谷歌搜索,并没有真正找到我认为是一个简单问题的答案。

我有一个名为顶点的类,定义如下:

我有一个 Vertex 的列表。我的问题是,如何使用 OpenTK (1.1) 绘制这个顶点列表?

正如我所说,我已经尝试过谷歌搜索等,但没有发现任何有帮助的东西。我希望我至少可以找到用于绘制多边形的简单示例代码,但也没有运气。

谢谢你的帮助!