问题标签 [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.
opengl - OpenGL法线不起作用?
我正在开发一个 OpenGL 项目,我希望它至少有一点照明。我正在尝试使用内置照明的 OpenGL 一段时间,但我没有取得太大的成功。
我加载的模型按以下顺序将其正确的法线(由 Wings3D 计算)附加到顶点:
模型之前确实有一些Material
调用,GL.Begin(BeginMode.Triangles)
例如:
这是加载的第一个模型的前三个法线(可信度检查)n(x,y,z):
这就是我设置照明的方式:
对象会对正在播放的设置做出反应,但遗憾的是所有面孔都具有相同的亮度。
我错过了什么还是我做错了什么?
c# - 如何加入重叠的圈子?
我想在视觉上加入两个重叠的圆圈,这样
变成
我已经有了部分圆的方法,但是现在我需要知道每个圆的重叠角度有多大,我不知道该怎么做。
有人有想法吗?
c# - 基于 OpenTK 的游戏断断续续
我目前正在开发一款使用 OpenTK 进行渲染的游戏;C#、.Net 4.0、OpenGL 2。
以 1280x1024 分辨率运行最大化(不是全屏,而是占用所有可用的屏幕空间),我看到平均大约 400 FPS。在 1680x1050 分辨率下,我看到平均大约 315 FPS。尽管帧速率很高,但我还是遇到了断断续续的口吃。
基本上,大约整整 3 秒,渲染会明显卡顿,然后在大约 0.5 到 1 秒内完全平滑。这个循环永远重复。
根据口吃,我的 FPS 计数器上没有显示帧率下降。我通过计算帧数来计算帧速率,直到达到所需的更新频率,然后使用每秒的滴答数、更新频率中的滴答数以及之前的帧数来计算帧速率算了。使用这种方法,我每隔一秒只会看到一次更新,但我从未见过帧速率下降到远低于我预期的水平。
如果我将游戏窗口拖到第二个显示器上,这个问题会显着加剧。
在 Release 版本中运行应用程序并没有解决问题。
我使用 redgate 的 ANTS 对应用程序进行了性能分析。这指出了我已经解决的一些问题。
这里有什么建议吗?
.net - 基于 OpenTK/兼容的文本渲染库
我注意到 OpenTK 文档中的文本渲染示例,但是是否已经为此目的开发了一个库?我希望将其用于视频游戏,因此它确实需要尽可能高性能。
c# - OpenTK (OpenGL) 不会绘制大多数图元
我最近开始在 C# 中使用 OpenTK 进行一个简单的游戏但是我似乎无法绘制基本形状,比如我尝试了很多东西但我无法弄清楚的点。
我的绘图程序目前看起来像这样:
初始化是这样的:
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 不允许我做类似的事情?
.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。
c# - OpenTK 文字动画
有谁知道如何使用 OpenTK 框架滚动(动画)二维文本,或者在哪里可以找到一些好的示例。我需要新闻电视频道上的底部(顶部)滚动代码。
谢谢。
multithreading - OpenGL / OpenTK:在 OpenGL 控件中显示在后台线程上渲染的 FBO
我通过 OpenTK 使用 OpenGL,并在后台线程中渲染到 FramebufferObject。现在,在每个渲染帧之后,我想在我的 UI 中的一个或多个 OpenGL 控件中显示(部分)FBO。
这是如何运作的 ?
c# - 为什么我会得到一个带有帧缓冲区的白色方块?
我正在尝试将帧缓冲区的使用添加到我的 OpenGL (OpenTK) 项目中。
进入我一开始添加的初始化方法:this.RenderBufferTex = GL.GenTexture();
this.glc
是场景运行的 GLControl。
在渲染之前我添加了
其次是 GL.Clear() 和我所有用于绘制场景的旧代码。
然后是显示渲染场景的方法:
我从中得到的结果是一个白色的正方形填充了我的屏幕左侧(所以它看起来是我的屏幕高度的正方形)。
我究竟做错了什么?