shader相关内容

如何将简单的高度贴图实现为Unity Shader

首先让我说我对着色器编程知之甚少。我这里的很多东西都是从在线资源和现有资产中拼凑而成的。我只需要知道如何正确地将高度贴图集成到unity着色器中。它不必比标准的Unity着色器更复杂。我不能使用标准着色器,因为我需要一个将多个纹理平铺在一起的着色器,这可能是我还没有找到这个问题的解决方案的原因。 我混合并移动了代码,删除了一些变量,重命名了一些变量,并在网上寻找有类似问题的任何人。 S ..
发布时间:2022-06-30 16:23:29 C#/.NET

单位-ProBuilder-烘焙光照贴图时的黑线和白线

当我使用ProBuilder在场景中生成烘焙光照贴图纹理时,我遇到了一个问题,即生成了长的黑白线条。 我已经确保了以下内容: 在所有ProBuilder对象上生成UV2(&Q) 确保启用了自动光照贴图(&Q) 单击";工具>;ProBuilder&>修复&>重新生成所有ProBuilder对象(&q;) 确保您的对象是静态的 确保灯光是静态的,并设置为烘焙(或混合) ..
发布时间:2022-04-16 18:22:35 其他开发

为SKShapeNode添加着色器

我想为SKShapeNode添加投影效果。我找到Emboss着色器here。 以下是我的代码: let node = SKShapeNode(rectOf: CGSize(width: w, height: h),cornerRadius: w / 4.0) node.position = CGPoint(x: x, y: frame.size.height + h / 2) node ..
发布时间:2022-03-11 20:10:42 移动开发

将3字节数据发送到OpenGL GLSL

我正在开发一个基于Voxed的小游戏。我不打算创建“我的世界”副本,但这不是这里的重点。 使用C++OpenGL和VBO时,我无法成功地将“非标准”类型发送到我的GLSL Shader。 假设一个由3个uint8_t属性组成的结构,我尝试将此结构的数组发送到我的GLSL。但我无法获取正确的值。 我找到的最准确的东西是:WebGL - How to pass unsigned byte ..
发布时间:2022-03-11 20:08:20 C/C++开发

如何获得给定像素在世界坐标中的颜色?

我使用的是戈多的碎片着色器。我可以获得当前像素的世界坐标,如下所示: vec3 pixel_world_pos = (CAMERA_MATRIX * vec4(VERTEX, 1.0)).xyz; 假设我将Pixel_world_pos.y增加10,我想知道该像素是什么颜色。我怎么才能弄清楚这一点呢? 我知道信息存储在UV中,但我使用的是世界坐标,而不是UV坐标. 推荐答案 ..
发布时间:2022-03-11 20:05:41 其他开发

在SpriteKit中使用着色器绘制圆

我正在尝试使用Swift在SpriteKit中使用着色器绘制一个中心圆来填充图像。我使用此链接来了解着色器,我使用的部分如下所示: vec2 center = vec2(uResolution.x/2., uResolution.y/2.); float radius = uResolution.x/2.; vec2 position = gl_FragCoord.xy - center ..
发布时间:2022-03-11 20:02:00 移动开发

使用WinRT的Windows.Graphics.Capture应用像素着色器

作为我以前question的继续,我能够找到一种方法,在WinRT的Windows.Graphics.Capture的帮助下,在没有自己窗口的情况下捕获实时屏幕。我可以直接将注意力集中在特定的窗口句柄上,以获得实时捕获。现在,这个方法的问题是我不能应用像素着色器。具有相同要求但该问题的答案相同的问题Applying HLSL Pixel Shaders to Win32 Screen Captur ..
发布时间:2022-03-11 19:54:21 C#/.NET

OpenGL二进制程序格式是否标准化?

我一直在搜索OpenGL二进制格式以及它们的实际含义。到目前为止,我还没有取得太大的成功。我知道我可以获取数量和格式集,如下所示: ::glGetIntegerv(GL_PROGRAM_BINARY_FORMATS, &values[0]); ,其中值是大小为 的整数的std::向量 ::glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS, &va ..
发布时间:2022-03-11 19:50:35 其他开发

用于均匀缓冲区的Vulkan存储器对齐

我正在学习联机教程:vulkan-tutorial其中作者正在添加描述符池和描述符集的功能。 我使用的是Vulkanv1.2.135.0,我的着色器设置为#version 450 我几乎完成了本教程的这一部分,我能够渲染旋转正方形,并且在调试模式下编译和运行时没有收到来自Vulkan层的错误。 我在上面的链接提供的页面底部附近,他在UniformBufferOjbect结构中引入 ..
发布时间:2022-03-11 19:45:15 C/C++开发

将HLSL像素着色器应用于Win32屏幕截图

一个小背景:我正在尝试制作一个Windows(10)应用程序,使屏幕看起来像旧的CRT监视器、扫描线、模糊等等。我使用微软的这个官方screen capture demo作为起点:在这个阶段,我可以捕获一个窗口,并将其显示在一个新的鼠标直通窗口中,就像它是原始窗口一样。 我正在尝试使用CRT-Royale CRT shaders,它们通常被认为是最好的CRT着色器;它们以.cg格式提供。我用cg ..
发布时间:2022-03-11 19:42:31 C/C++开发

WPF着色器效果-未显示抗锯齿

我遇到了一个问题,我有一个WPF着色器效果(从Rene Schulte修改而来)来模拟点阵显示(DMD)。一切正常,但所有点都有别名。 请参阅所附图像。 我尝试了WPF中的许多功能,以引入抗锯齿功能,但没有什么用。 在构造函数中(文本框中的图像); RenderOptions.SetBitmapScalingMode(MarqueeTB, BitmapScalingMode ..
发布时间:2022-03-11 19:40:15 其他开发

如何使用OpenGL将RGBA转换为NV12?

我需要使用OpenGL着色器作为编码器输入将RGBA转换为NV12。 已经渲染了两个不同的碎片着色器,两个纹理都来自一个摄影机。使用V4L2获取相机图像(YUV)。然后,将YUV转换为RGB,让OpenGL渲染。下一步,我需要将RGB转换为NV12作为编码器输入,因为编码器只接受NV12格式。 推荐答案 使用计算着色器将rgb转换为平面yuv,然后对UV平面进行二倍的缩减采样。 ..
发布时间:2022-03-11 19:34:16 其他开发

如何在OpenGL中实现无重复顶点的平面着色?

我正在尝试使用平面着色在LWJGL OpenGL中渲染3D棱镜。例如,我有一个多维数据集索引,如下所示: 我在顶点缓冲区中只有8个顶点,我如上所述对它们进行了索引。有没有办法在立方体上实现平坦的法线着色,如下图所示?如果可能,我不想重写顶点和索引缓冲区以包括重复的顶点。 推荐答案 如果不需要任何其他属性(例如纹理坐标),则可以选择仅通过8个顶点创建具有面法向矢量的立方体网格。对法 ..
发布时间:2022-03-11 19:31:08 其他开发

在片段着色器中无失真地使用OpenGL ES旋转纹理

我正在使用Android的GPUImage库来对位图应用一些效果。本质上,GPUImage接受位图并使用OpenGL ES,将1x1立方体渲染到位图大小的帧缓冲区中。用户可以编写自定义片段着色器来控制输出。 我正在尝试编写一个片段着色器,它在给定旋转角度的情况下旋转位图。以下是我到目前为止的情况: varying vec2 textureCoordinate; uniform samp ..
发布时间:2022-03-01 17:33:21 移动开发

着色器-通过拉动像素来防鱼眼(&QOOT;PARTING";像素)

我想修复此图像的失真: 质量问题很抱歉,但这是我能找到的最好的例子了。 我不知道是否有可能修复这种扭曲(我希望有直门和直天花板),但基本上,我不想将像素推到图像外部(红色箭头),这会增加模糊效果,我想做相反的操作(绿色箭头),将像素拉向中心。 如果你有什么想法,那就太棒了。也欢迎其他解决方案! 推荐答案 对于鱼眼效果的定义,您必须将角度(Alpha)与视口的对角线(d)相 ..
发布时间:2022-03-01 17:26:52 其他开发

如何在质心计算光线的情况下实现平面着色?

我想编写一个GLSL着色器程序,用于逐面着色。我的第一次尝试使用flat插值限定符和触发顶点。我对法线和位置顶点属性都使用平面插值,这为我提供了所需的实心绘制曲面的老式效果。 虽然渲染看起来正确,但着色器程序实际上没有正确执行工作: 灯光计算仍以每个碎片为基础(在碎片着色器中), 位置矢量取自挑衅顶点,而不是三角形的质心(对吗?)。 是否可以对三角形的质心应用一次照明公式,然后 ..
发布时间:2022-03-01 17:20:16 其他开发