问题标签 [multipass]

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 回答
4415 浏览

opengl - GPU驱动程序如何解释GLSL的“连贯”内存限定符以进行多遍渲染?

GLSL 规范声明,对于“一致”内存限定符:“内存变量,其中读取和写入与来自其他着色器调用的读取和写入一致”

在实践中,我不确定现代 GPU 驱动程序如何解释多个渲染通道。当 GLSL 规范声明“其他着色器调用”时,这是指仅在当前通道期间运行的着色器调用,还是在过去或未来通道中任何可能的着色器调用?出于我的目的,我将传递定义为“glBindFramebuffer-glViewPort-glUseProgram-glDrawABC-glDrawXYZ-glDraw123”循环;我目前在每个“渲染循环迭代”中执行 2 次这样的传递,但以后每次迭代可能会有更多。

0 投票
1 回答
1063 浏览

c++ - 使用渲染到纹理的多通道着色

我正在尝试使用 OpenSceneGraph 实现多通道渲染方法。但是,我不完全确定我的问题是理论上的还是由于缺乏对 OSG 的应用知识。到目前为止,我已经通过使用正交投影渲染到纹理成功地实现了多通道着色,但我似乎无法使透视投影工作。

可能是我不太明白如何实现多通道着色。当然,我必须使用多通道着色器将整个场景预渲染为纹理,然后在最终渲染中使用该纹理。但是,我不是在谈论为场景中的每个对象创建单独的纹理,而是有效地捕获整个预渲染场景的屏幕截图。然后,仅从该纹理,将渲染效果应用于各个几何图形。

我假设这意味着我必须对顶点着色器中的每个几何图形进行额外的顶点坐标转换。也就是说,经过计算:

我需要更进一步并计算顶点的屏幕坐标,以便正确映射顶点(再次,假设纹理由场景的整个屏幕截图组成)。

如果我是正确的,那么我必须能够在与最终渲染中使用的视图相同的透视图中预渲染场景,而不是正交视图。这就是我遇到麻烦的地方。我可以让正交视图做我想做的事,但不是透视图。

我的方法正确吗?我能想象的唯一其他方法是将所有内容渲染到屏幕填充四边形(实际上,与转换为屏幕坐标相同),但这并不能减轻在预渲染阶段使用透视投影的需要.

想法?链接??

编辑:我还应该指出,在我成功的尝试中,我只使用了片段着色器。透视投影有效,但是,当然,我使用的屏幕对齐四边形是偏移而不是居中的。我添加了一个直通顶点着色器,一切都变成了空白。

0 投票
1 回答
1871 浏览

opengl - OpenGL:使用帧缓冲区对象的多通道渲染

在开发小型 2D 引擎时,我偶然发现了一个小设计问题,不幸的是,以我的知识水平,如果没有您的帮助,我无法解决。

让我解释一下:我正在为其开发 2D 引擎的游戏应该包含复杂的效果,这可能需要多次渲染。问题是,我不确定我是否正确理解了多通道渲染的概念。

在这个知识水平上,我会以这种方式实现它:

  1. 最初创建,设置(将其附加到纹理,...)并绑定帧缓冲区对象
  2. 现在渲染应该应用效果的东西到 FBO 的附加纹理
  3. 在第一遍使用着色器将该纹理渲染到相同的 FBO
  4. 取消绑定 FBO 并将附加的纹理渲染到标准 FBO,方法是使用最后一遍的着色器

现在的问题是这是否是解决我的问题的最有效方法,或者是否有更好的方法来解决这个问题。

0 投票
2 回答
1250 浏览

ios - 如何在 OpenGL 中通过多个通道添加光?

我有两个函数要结合以下结果:

它们每个都可以单独工作,仅使用环境光或仅使用定向光绘制场景。我想同时显示环境光和定向光,但遇到了一些麻烦。我试试这个:

但我只看到 first 的结果draw。我以相同的方式计算两组绘制调用的深度。我总是可以只渲染纹理并混合纹理,但这似乎是多余的。渲染到默认帧缓冲区时,有没有办法可以将照明添加在一起?

0 投票
1 回答
98 浏览

c++ - 如何从 boost::spirit::multi_pass 获取基本迭代器?

如何访问迭代multi_pass器正在使用的底层迭代器?

0 投票
2 回答
104 浏览

parallel-processing - 推荐并行化多通道算法的方法

我正在为自定义视频格式 ( QTC ) 编写解码器和编码器。解码过程由多个阶段组成,每个阶段的输出被传递到下一个阶段:

  1. 反序列化输入流
  2. 使用范围编码器生成符号序列
  3. 从符号流生成图像流
  4. 将图像流序列化为输出格式

第三步和第四步几乎占据了所有的处理时间,第三步大约占 35%,第四步大约占 60%,第一步和最后一步相当琐碎。

并行运行四个步骤的推荐和理想方式是什么?我最感兴趣的是如何处理部件之间的通信。我计划在第二步和第三步使用一个 Goroutine,这些例程通过缓冲通道连接。这是正确的方法吗?

0 投票
0 回答
769 浏览

c++ - 使用 FFmpeg 库进行两次(或多次)编码

我想使用 FFmpeg 库进行两遍编码。作为文档提供的示例代码显示了编码/解码、复用/解复用等,但编码过程是单程的。我想用两遍编码做/实验。其他地方是否提供了一些示例/示例?

提前致谢!

0 投票
0 回答
203 浏览

xna - 每个对象运行时光照贴图

我正在 XNA 中构建游戏,但这个问题可能适用于大多数 3D 框架。

我的场景包含几个点光源。每盏灯都有一个位置、强度、颜色和半径。它还包含几个可以被点光源照亮的对象。

我已经成功地使用了一个简单的前向渲染器来一次用多达 8 个点光源来照亮这些对象。

不过,我也想尝试一些其他的效果,比如每一帧光线都会慢慢消失的被照亮的物体

我想使用多通道方法:

  • 每个被照亮的对象都有一个纹理和一个光照贴图(一个渲染纹理)

然后,每个帧和每个对象:

  • 清除光照贴图(或淡化它)
  • 使用衰减等将每个灯光绘制到光照贴图。
  • 在像素着色器中使用纹理*光照贴图渲染对象

我的问题与纹理坐标有关。光照贴图应该使用与纹理贴图相同的 UV 贴图,这样当我绘制对象时,颜色为:

或者,换一种说法,我需要在光照贴图像素着色器中计算光照贴图中每个像素的世界位置,以计算其到每个光照的距离。

实现这一点需要什么坐标变换?

0 投票
0 回答
163 浏览

php - 解密多通道

我想使用 Multipass 在两个 PHP 网站之间实现 SSO。我在以下链接中找到了一个生成多通道的函数:

https://github.com/rps-repo/Redmine-PHP-MultiPass/blob/master/multipass.php

我使用以下函数生成多通道:

我将用户重定向到以下网址:

http://mywebsite.com/?sso=' . $multipass;

在哪里$multipass = gen_multipass($data, $site_key, $api_key);

http://mywebsite.com/我已经获取了查询字符串值,即$_GET['sso']. 现在我应该如何从这个编码的多通道字符串中获取原始数据?

或者

有没有更好的方法在两个 PHP 网站之间实现 SSO?

0 投票
1 回答
494 浏览

unity3d - 在 Unity 中,着色器通道是由对象还是由三角形绘制的?

在 Unity 中,当我们编写具有多个通道的自定义着色器时,它们是否会执行:

或者:

如果网格中有多种材质,绘制的面是否按材质分组?