小编Azz*_*777的帖子

如何使用OpenGL创建自定义顶点格式

我正在使用OpenTK编写自己的引擎(基本上只是用于C#的OpenGL绑定,gl*变成GL.*)并且我将存储许多顶点缓冲区,每个顶点缓冲区中有数千个顶点.因此我需要自己的自定义顶点格式,因为带有浮点数的Vec3会占用太多空间.(我在这里谈论数百万个顶点)

我想要做的是用这个布局创建我自己的顶点格式:

Byte 0: Position X
Byte 1: Position Y
Byte 2: Position Z
Byte 3: Texture Coordinate X

Byte 4: Color R
Byte 5: Color G 
Byte 6: Color B
Byte 7: Texture Coordinate Y
Run Code Online (Sandbox Code Playgroud)

以下是顶点C#中的代码:

public struct SmallBlockVertex
{
    public byte PositionX;
    public byte PositionY;
    public byte PositionZ;
    public byte TextureX;

    public byte ColorR;
    public byte ColorG;
    public byte ColorB;
    public byte TextureY;
}
Run Code Online (Sandbox Code Playgroud)

作为每个轴的位置的字节是充足的,因为我只需要32 ^ 3个唯一位置.

我编写了自己的顶点着色器,它将两个vec4作为输入,为每组字节打开.我的顶点着色器是这样的:

attribute vec4 pos_data;
attribute vec4 col_data;

uniform mat4 projection_mat;
uniform …
Run Code Online (Sandbox Code Playgroud)

c# opengl glsl vertices opentk

6
推荐指数
1
解决办法
4006
查看次数

为什么这个GLSL Vertex Shader不会编译?

我正在使用OpenGL编写自己的着色器,我很难理解为什么这个着色器无法编译.还有其他人可以看一下吗?

我作为顶点传入的是这种格式的2个浮点数(以字节分隔):

Float 1:

Byte 1: Position X
Byte 2: Position Y
Byte 3: Position Z
Byte 4: Texture Coordinate X


Float 2:

Byte 1: Color R
Byte 2: Color G 
Byte 3: Color B
Byte 4: Texture Coordinate Y
Run Code Online (Sandbox Code Playgroud)

这是我的着色器:

in vec2 Data;
varying vec3 Color;
varying vec2 TextureCoords;

uniform mat4 projection_mat;
uniform mat4 view_mat;
uniform mat4 world_mat;

void main() 
{
    vec4 dataPosition = UnpackValues(Data.x);
    vec4 dataColor = UnpackValues(Data.y);

    vec4 position = dataPosition * vec4(1.0, 1.0, 1.0, 0.0);
    Color …
Run Code Online (Sandbox Code Playgroud)

opengl glsl vertex-shader

5
推荐指数
1
解决办法
2341
查看次数

Visual Studio 2010看起来"放大"

今天,我在一台全新的Windows 7 Ultimate 64位安装的新笔记本电脑上安装了Visual Studio 2010 Professional.我已经习惯了Visual Studio 2010的外观,立即发现了一些错误.从某种程度上看,Visual Studio应用程序似乎是"放大"的.文本要大得多(即使它表示缩放级别为100%,文本大小为10,这与我以前使用的相同),通常情况下,其他窗口也是如此,如解决方案资源管理器和输出安慰.图标和图像的质量也很差.

这是两个比较图像(我不允许发布图像,所以有些链接必须这样做):

这是我以前的样子.我在窗口看到很多文字,图标很好.

http://i51.tinypic.com/2mq8dau.png

当我在我的新笔记本电脑上安装VS2010时,这就是我的问候.图标看起来很紧张,我可以在窗口中放入更少的代码.

http://i56.tinypic.com/35k0fo4.png

我的旧电脑屏幕分辨率为1920x1200,新电脑的分辨率为1920x1080.(我将旧计算机上的VS窗口调整为大约1920x1080以显示差异).

看起来我的图像主机也调整了图像大小,但你仍然可以看到差异.

有没有人有同样的问题?我希望它只是一些视觉设置.如果遗漏任何内容,我将很乐意提供更多信息.

提前致谢.

dpi visual-studio-2010

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

标签 统计

glsl ×2

opengl ×2

c# ×1

dpi ×1

opentk ×1

vertex-shader ×1

vertices ×1

visual-studio-2010 ×1