小编liv*_*muk的帖子

如何将整数转换为红色,绿色和蓝色值

我正在使用以下内容将RGB值转换为单个整数:

public static int RGBtoInt(int red, int greed, int blue)
{
    return blue + green + (green * 255) + (red * 65536);
}
Run Code Online (Sandbox Code Playgroud)

但是努力编写一个反向方法,接受一个整数并返回单个RGB组件.

一些主题性的:

public static Vector3 IntToRgb(int value)
{
    // calculations...
    return new Vector3(red, green, blue); 
}
Run Code Online (Sandbox Code Playgroud)

Color.FromArgb(int)方法不是创建我需要的RGB颜色.

RGBtoInt上面的函数匹配OpenGL返回的RGB整数值,我正在寻找一个反向方法.这与此处使用的转换方法相同.

c# rgb integer

4
推荐指数
1
解决办法
2463
查看次数

从根开始构建 Assimp 骨骼层次结构

我正在使用 Assimp.net 将动画 .dae 文件导入我的 OpenTK 引擎并努力建立可用的分层骨骼结构。

在我正在关注的教程中,根骨骼或“关节”包含它的子关节列表,以及它们的子关节列表等等。

Assimp 返回Mesh带有对象列表的每个导入对象Bone,封装了骨骼的Name,OffsetMatrixVertexWeights,但没有关于它的子骨骼或父骨骼。

Scene,其中包含了Mesh,确实有总名单nodes(其中一些是骨头),这些确实具有parentName价值,但通过递归比较检查建立等级越来越凌乱快速远未发挥作用。

我怎样才能隔离根骨骼,然后是孩子,然后是他们的孩子,等等?

c# opengl opentk assimp

4
推荐指数
1
解决办法
1200
查看次数

使用OpenGL实现更平滑的渐变过渡?

我正在使用以下着色器渲染天幕以模拟夜空.我的问题是颜色之间清晰可见的过渡.

是什么导致这些刺耳的梯度过渡?

在此输入图像描述

片段着色器:

#version 330
in vec3 worldPosition;
layout(location = 0) out vec4 outputColor;

void main()
{
    float height = 0.007*(abs(worldPosition.y)-200);    
    vec4 apexColor = vec4(0,0,0,1);
    vec4 centerColor = vec4(0.159, 0.132, 0.1, 1);

    outputColor = mix(centerColor, apexColor, height);
}
Run Code Online (Sandbox Code Playgroud)

Fbo像素格式:

GL.TexImage2D(
    TextureTarget.Texture2D,
    0,
    PixelInternalFormat.Rgb32f,
    WindowWidth,
    WindowHeight,
    0,
    PixelFormat.Rgb,
    PixelType.Float,
    IntPtr.Zero )
Run Code Online (Sandbox Code Playgroud)

opengl glsl opentk

4
推荐指数
2
解决办法
356
查看次数

GLSL 110 不允许子矩阵或超级矩阵构造函数

我正在尝试将 330 着色器转换为 110,但找不到解决方法:

v_norm = normalize(mat3(modelview) * vNormal);
Run Code Online (Sandbox Code Playgroud)

返回的错误是:

GLSL 110 does not allow sub- or super-matrix constructors
Run Code Online (Sandbox Code Playgroud)

完整的着色器:

#version 110

attribute  vec3 vPosition;
attribute  vec3 vNormal;
varying vec3 v_norm;

uniform mat4 modelview;

void main()
{
    gl_Position = modelview * vec4(vPosition, 1.0);
    v_norm = normalize(mat3(modelview) * vNormal);
    v_norm = vNormal;
}
Run Code Online (Sandbox Code Playgroud)

c# opengl macos glsl opentk

3
推荐指数
1
解决办法
733
查看次数

OpenGL——奇怪的SSAO神器

我按照学习 OpenGL中的教程来实现屏幕空间环境光遮挡。除了窗口顶部和底部有一个奇怪的工件之外,一切看起来都还不错。

当图像的顶部部分印在底部时,移动相机时问题会更加明显,反之亦然,如该视频所示。

在此输入图像描述

当靠近墙壁站立​​并上下观察时,伪像会变得更糟,所以也许 Znear 值有所贡献?与其他演示相比,我的场景规模似乎很小,Znear 和 Zfar 为0.01f1000并且所示走廊的宽度约为1.2f

我已经阅读了常见的 SSAO 工件,但没有发现任何类似的内容。

#version 330 core

in vec2 TexCoords;
layout (location = 0) out vec3 FragColor;   

uniform sampler2D MyTexture0;   // Position
uniform sampler2D MyTexture1;   // Normal
uniform sampler2D MyTexture2;   // TexNoise

const int samples = 64;
const float radius = 0.25;
const float bias = 0.025;

uniform mat4 projectionMatrix;

uniform float screenWidth;
uniform float screenHeight;

void main()
{
    //tile noise texture over …
Run Code Online (Sandbox Code Playgroud)

opengl glsl opentk ssao

3
推荐指数
1
解决办法
907
查看次数

OpenGL - 各种颜色附件的清晰颜色不同?

我希望用不同的清晰颜色擦拭FBO的不同颜色附件.使用GL命令可以实现这一点,还是必须在着色器中执行此操作?

opengl glsl

2
推荐指数
1
解决办法
1852
查看次数

标签 统计

opengl ×5

glsl ×4

opentk ×4

c# ×3

assimp ×1

integer ×1

macos ×1

rgb ×1

ssao ×1