问题标签 [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 回答
1124 浏览

opengl - OpenGL法线不起作用?

我正在开发一个 OpenGL 项目,我希望它至少有一点照明。我正在尝试使用内置照明的 OpenGL 一段时间,但我没有取得太大的成功。

我加载的模型按以下顺序将其正确的法线(由 Wings3D 计算)附加到顶点:

模型之前确实有一些Material调用,GL.Begin(BeginMode.Triangles)例如:

这是加载的第一个模型的前三个法线(可信度检查)n(x,y,z):

这就是我设置照明的方式:

对象会对正在播放的设置做出反应,但遗憾的是所有面孔都具有相同的亮度。

我错过了什么还是我做错了什么?

0 投票
3 回答
2671 浏览

c# - 如何加入重叠的圈子?

我想在视觉上加入两个重叠的圆圈,这样

替代文字

变成

替代文字

我已经有了部分圆的方法,但是现在我需要知道每个圆的重叠角度有多大,我不知道该怎么做。

有人有想法吗?

0 投票
1 回答
2449 浏览

c# - 基于 OpenTK 的游戏断断续续

我目前正在开发一款使用 OpenTK 进行渲染的游戏;C#、.Net 4.0、OpenGL 2。

以 1280x1024 分辨率运行最大化(不是全屏,而是占用所有可用的屏幕空间),我看到平均大约 400 FPS。在 1680x1050 分辨率下,我看到平均大约 315 FPS。尽管帧速率很高,但我还是遇到了断断续续的口吃。

基本上,大约整整 3 秒,渲染会明显卡顿,然后在大约 0.5 到 1 秒内完全平滑。这个循环永远重复。

根据口吃,我的 FPS 计数器上没有显示帧率下降。我通过计算帧数来计算帧速率,直到达到所需的更新频率,然后使用每秒的滴答数、更新频率中的滴答数以及之前的帧数来计算帧速率算了。使用这种方法,我每隔一秒只会看到一次更新,但我从未见过帧速率下降到远低于我预期的水平。

如果我将游戏窗口拖到第二个显示器上,这个问题会显着加剧。

在 Release 版本中运行应用程序并没有解决问题。

我使用 redgate 的 ANTS 对应用程序进行了性能分析。这指出了我已经解决的一些问题。

这里有什么建议吗?

0 投票
2 回答
2896 浏览

.net - 基于 OpenTK/兼容的文本渲染库

我注意到 OpenTK 文档中的文本渲染示例,但是是否已经为此目的开发了一个库?我希望将其用于视频游戏,因此它确实需要尽可能高性能。

0 投票
1 回答
3643 浏览

c# - OpenTK (OpenGL) 不会绘制大多数图元

我最近开始在 C# 中使用 OpenTK 进行一个简单的游戏但是我似乎无法绘制基本形状,比如我尝试了很多东西但我无法弄清楚的点。

我的绘图程序目前看起来像这样:

初始化是这样的:

0 投票
1 回答
135 浏览

opengl - 使用 3D 和第 3 方插件的应用程序 - 向前兼容 OpenGL 或 Direct3D?

我正在编写一个应用程序,它将使用第 3 方创建的插件来呈现各种 3D 技巧。

我的主要应用是创建上下文/渲染对象和渲染目标/帧缓冲区对象。3rd-party 插件将渲染他们花哨的东西,所以他们需要访问那个上下文/渲染对象来执行他们的 3d-render 相关的调用。

我可以选择使用 OpenGL 或 Direct3D 来实现它。我的决定很可能是基于我对下一个问题的理解:

显然,新版本的 OpenGL / Direct3D 将会问世,如果新创建的插件可以从比主程序编译的新版本的 DX/OGL 中受益,那就太好了。(如果运行该应用程序的计算机支持该较新版本

使用 OpenGL(使用 OpenTK)我知道可以创建一个向前兼容的上下文,如"Give me the most up-to-date-version that is back-compatible with version X"。因此,当询问 3.2 上下文时,如果 4.0 可用,它将返回 4.0 上下文。

对于 DirectX,我没有看到类似的东西,这意味着如果我使用 DirectX 11 创建我的主程序,第 3 方插件将永远无法使用可用的更新版本?

我得到这个正确吗?

OpenGL 是否允许 3rd-party 插件编写者为较新版本的 OpenGL 创建插件,而 DirectX 不允许我做类似的事情?

0 投票
1 回答
418 浏览

.net - OpenGL 3 和 Radeon HD 4850x2

前段时间,我拿起一本 OpenGL SuperBible 第五版的副本,在从学校回来的时候习惯了 1.0 的方式之后,慢慢而痛苦地开始自学 OpenGL 3.3 的方式。让事情变得更具挑战性,我主要是一名 .NET 开发人员,所以我在 Mono 中使用 OpenTK OpenGL 包装器工作。在我的笔记本电脑上,我编写了一个程序,让用户使用几个着色器在简单的风景中走动,这些着色器实现了每个顶点的着色、照明和纹理映射。在我在桌面上运行相同的程序之前,一切都运行良好。

灾难!什么都不会渲染!我已经将我的程序削减到相机位于原点附近的点,指向原点,并渲染一个正方形(从技术上讲,一个三角形扇形)。四边形在我的笔记本电脑上完美呈现,着色、照明、纹理等等,但桌面呈现一个小的扭曲的非方形四边形,颜色不正确,不受灯光影响,也没有纹理。

我怀疑显卡有问题,因为无论我启动到 Ubuntu 10.10 还是 Win XP,我都会得到相同的结果。我确实发现,如果我将顶点着色器缩减为仅输出位置数据,将片段着色器缩减为仅输出纯色(白色),则四边形渲染正确。但是,一旦我开始传入颜色数据(无论我是否在片段着色器中使用它),顶点着色器的输出就会再次失真。着色器紧随其后。我留下了预先存在的代码,但注释掉了,这样你就可以知道我在做什么。我是 glsl 的菜鸟,所以代码可能会好很多。

我的笔记本电脑是旧的 lenovo T61p,带有 Centrino (Core 2) Duo 和运行 Ubuntu 10.10 的 nVidia Quadro 显卡 我的台式机有 i7 和 Saphire 双启动到 Ubuntu 10.10 的 Radeon HD 4850 x2(单卡,双 GPU)和视窗XP。XP 和 Ubuntu 都会出现此问题。

任何人都可以看到我遗漏的错误吗?我的 HD 4850x2 有什么“特别”之处?

请注意,在此代码中,颜色数据被接受但并未实际使用。无论片段着色器是否使用可变颜色,几何体的输出都是相同的(错误的)。只有当我注释掉该行时varyingColor = in_color;,几何输出才会正确。最初着色器采用 vec3 输入,我只在故障排除时将它们修改为采用 vec4。

0 投票
1 回答
2669 浏览

c# - OpenTK 文字动画

有谁知道如何使用 OpenTK 框架滚动(动画)二维文本,或者在哪里可以找到一些好的示例。我需要新闻电视频道上的底部(顶部)滚动代码。

谢谢。

0 投票
1 回答
1419 浏览

multithreading - OpenGL / OpenTK:在 OpenGL 控件中显示在后台线程上渲染的 FBO

我通过 OpenTK 使用 OpenGL,并在后台线程中渲染到 FramebufferObject。现在,在每个渲染帧之后,我想在我的 UI 中的一个或多个 OpenGL 控件中显示(部分)FBO。

这是如何运作的 ?

0 投票
1 回答
687 浏览

c# - 为什么我会得到一个带有帧缓冲区的白色方块?

我正在尝试将帧缓冲区的使用添加到我的 OpenGL (OpenTK) 项目中。

进入我一开始添加的初始化方法:this.RenderBufferTex = GL.GenTexture();

this.glc是场景运行的 GLControl。

在渲染之前我添加了

其次是 GL.Clear() 和我所有用于绘制场景的旧代码。

然后是显示渲染场景的方法:

我从中得到的结果是一个白色的正方形填充了我的屏幕左侧(所以它看起来是我的屏幕高度的正方形)。

我究竟做错了什么?