我正在使用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) 我正在使用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) 今天,我在一台全新的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以显示差异).
看起来我的图像主机也调整了图像大小,但你仍然可以看到差异.
有没有人有同样的问题?我希望它只是一些视觉设置.如果遗漏任何内容,我将很乐意提供更多信息.
提前致谢.