问题标签 [rendermonkey]

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

hlsl - RenderMonkey 无法识别我的变量

我的 HLSL 着色器需要一个参数:

, uniform float4x4 wm

把它放到 RM 中我得到一个错误:“缺少名为 '$wm' 的着色器常量参数” 我创建了一个 4x4 矩阵变量wm,但它没有改变任何东西(而且你不能添加$wm)。我该如何设置?

0 投票
2 回答
1269 浏览

opengl - RenderMonkey 在 GLSL 的 TEXCOORD 流映射中是否存在错误?

为了清楚起见,我从我的问题开始:

是否可以使用(在着色器代码中)我为 RenderMonkey 1.82 中的(OpenGL)流映射中的TEXCOORD 使用设置的自定义属性名称,还是必须使用 gl_MultiTexCoord0?(这个问题也可能对NORMAL 使用有效,即自定义名称或gl_Normal

背景:

使用 RenderMonkey 1.82 版。我已经成功地使用流映射来映射一般顶点属性“位置”(也许是“正常”),但纹理坐标似乎没有正确转发。对于着色器代码,我使用#version 330 和 GLSL 中的“in”限定符,这应该没问题,因为 RM 不编译着色器本身(OpenGL 驱动程序会)。

我已经尝试过 .obj 和 .3ds 文件(从搅拌机导出),并且在检查波前 .obj 文件时,所有纹理坐标信息以及顶点位置和法线都在那里。

如果不可能,则流映射被破坏,并且在流映射编辑器中命名变量没有意义(除了顶点位置流,它可以工作),因为无论如何都必须使用内置变量。

更新:如果使用已弃用的内置变量,则必须在着色器中使用兼容模式,例如

并且,在主要功能中:

(现在我也不确定法线的流映射。一旦纹理坐标正常工作,我就遇到了正常问题,不得不恢复到 gl_Normal。)

这是一个工作解决方案的图片,但带有内置变量(是的,图片中注释的 texcoord 变量与流映射对话框中的名称不同,但是当我尝试使用时它具有相同的名称它,所以没关系。):使用内置变量绕过流映射

0 投票
0 回答
451 浏览

3d - RenderMonkey 中的阴影贴图

我正在尝试为茶壶创建一个在地形上生成阴影的着色器。在大多数情况下,我有它的工作,虽然我有一个奇怪的问题,我有一个主阴影,但也有很多较小的茶壶阴影。这有点让我难过。

我已将我的项目上传到 DropBox,您可以在此处下载。任何人都可以给我任何指示吗?

0 投票
2 回答
584 浏览

directx - 如何从 3dsMax 导出 .3ds 文件以使用 RenderMonkey?

如何从 3dsMax 2010 导出 .3ds 文件以使用 RenderMonkey?当我查看 RenderMonkey 中的流映射时,有 POSITION、NORMAL、TEXCOORD、TANGENT、BINORMAL、TESSFACTOR 等。我想知道如何导出这些信息以将顶点着色器作为流数据发送。提前致谢。

0 投票
2 回答
7565 浏览

directx - HLSL 无效 ps_2_0 输入语义 POSITION0

我正在尝试在 RenderMonkey 中为 Dx9 编写一个 phong 着色器效果。

我在像素着色器中遇到编译错误

*"无效的 ps_2_0 输入语义 'POSITION0'"*

而且我不确定如何解决它,尽管我知道它必须与 VS_OUTPUT 中的 POSITION0 语义有关。

我尝试将 VS_OUTPUT 的 Pos 语义更改为 TEXCOORD0,但随后系统报告

顶点着色器必须至少写入 POSITION 的所有四个组件

下面提供了着色器。有什么建议么?

这是我的顶点着色器:

和我的像素着色器:

0 投票
1 回答
565 浏览

glsl - RenderMonkey / GLSL 相机和视图

如何使 vec3 viewpos 遵循相机的值?大概它们应该是相同的,但我不知道如何访问相机的位置值。

0 投票
1 回答
1059 浏览

opengl - 在 OpenGL 和 OpenGL ES 中使用自定义和通用顶点着色器属性

由于 OpenGL 中不推荐使用通用顶点属性,因此我尝试仅使用自定义属性重写我的顶点着色器。而且我没有为我工作。这是顶点着色器:

这在 OpenGL ES 2.0 中完美运行。但是,当我尝试将它与 OpenGL 一起使用时,我看到了黑屏。如果我更改aNormal为通用,gl_Normal一切正常(请注意,aPosition在两种情况下都可以正常工作,我不必使用gl_Vertex)。

我究竟做错了什么?

我使用 RenderMonkey 来测试着色器,并在其中使用适当的属性名称(aPosition 和 aNormal)设置流映射。也许它与属性索引有关,因为我将它们全部设置为0? 此外,这是 RenderMonkey 文档中关于在“流映射”中设置自定义属性名称的内容:

“属性名称”字段显示可在着色器编辑器中用于引用该流的默认名称。在 OpenGL ES 效果中,应使用更改后的名称来引用流;但是,在 DirectX 或 OpenGL 效果中,新名称对着色器编辑器没有影响

我想知道这个问题是否特定于 RenderMonkey 或 OpenGL 本身?为什么aPosition仍然有效呢?

0 投票
1 回答
1142 浏览

opengl-es - glsl es const mat2 数组

我尝试在 Open GL ES 2.0(在 RenderMonkey 中)编译以下代码:

但是编译器说:

我做错了什么?

0 投票
0 回答
624 浏览

opengl - WGL 扩展和虚拟机

我目前正在尝试在 VirtualBox 4.3.8 中运行的 WinXP 虚拟机上使用旧的 Rendermonkey 1.82。遗憾的是它不适用于 OpenGL,无法找到 WGL 扩展(确切的错误消息是:“未检测到 WGL PBuffer 扩展 - 请更新您的驱动程序。将无法继续进行 OpenGL 渲染。”)......即使该程序使用 DirectX 工作,我需要它与 OpenGL 一起使用

你知道这个问题有解决方案/解决方法吗?

还要考虑一下: - 基于 DirectX 的 3D 加速工作正常 - 其他基于 OpenGL 的程序工作正常 - 在 vm 设置中启用了 3D 加速 - 已安装并运行更新的 GuestAddition

0 投票
1 回答
89 浏览

shader - 着色器编程,为图像创建光交互

我正在尝试在 RenderMonkey 中学习着色器编程,如果我拍了一张照片并想对那个对象应用一些光交互。

我应该如何以一种好的方式做到这一点,我不想使用默认的 openGL 灯,想自己定义一个。

假设我从变量 lightColor、float 光泽系数和 vec3 lightPos以及光源的位置x创建颜色。在默认管道中,灯光位置以相机坐标表示。我应该如何以最好的方式做到这一点?yz

如果我想要一个质量最好的像素着色器,我应该使用哪个着色器来实现着色计算?