C++ 不渲染毛发的红皮书毛发示例(Linux/nvidia gtx675mx)

C++ 不渲染毛发的红皮书毛发示例(Linux/nvidia gtx675mx),c++,linux,opengl,nvidia,C++,Linux,Opengl,Nvidia,我试图让红皮书(第8版)第10章毛发示例在我的Ubuntu 14.04笔记本电脑上使用Nvidia GTX675MX 我已将代码更改为使用SDL2和glm,但其他一切都与红皮书中的一样 代码将编译并运行,但三维对象没有毛发着色 谁能发现任何错误,或者我的GPU根本无法完成任务 (完整来源如下:) #定义GLM_力_弧度 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括“朱砂.h” #包括“vutils.h” #包括“vbm.h” #定义缓冲区偏移量(x)((

我试图让红皮书(第8版)第10章毛发示例在我的Ubuntu 14.04笔记本电脑上使用Nvidia GTX675MX

我已将代码更改为使用SDL2和glm,但其他一切都与红皮书中的一样

代码将编译并运行,但三维对象没有毛发着色

谁能发现任何错误,或者我的GPU根本无法完成任务

(完整来源如下:)

#定义GLM_力_弧度
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括“朱砂.h”
#包括“vutils.h”
#包括“vbm.h”
#定义缓冲区偏移量(x)((常量无效*)(x))
#定义程序名称“红皮书-第10章-毛发”
void初始化();
void Display();
作废定稿(作废);
空洞重塑(内部宽度、内部高度);
浮动方面;
胶合基础;
胶合毛皮;
胶合毛皮;
VBObject对象;
闪烁毛发模型矩阵位置;
闪烁毛发投影矩阵位置;
闪烁基准\模型\矩阵\位置;
闪烁基底投影矩阵位置;
void Initialize()
{
base_prog=glCreateProgram();
静态常量字符基与源[]=
“#版本410\n”
“\n”
“vec4位置中的布局(位置=0)\u in;\n”
“vec3中的布局(位置=1)正常\u in;\n”
“vec2 texcoord_中的布局(位置=2);\n”
“\n”
“统一mat4模型\u矩阵;\n”
“一致mat4投影矩阵;\n”
“\n”
“输出VS_FS_顶点\n”
“{\n”
“vec3正常;\n”
“}顶点_out;\n”
“\n”
“作废主(作废)\n”
“{\n”
“顶点_out.normal=法线_in;\n”
“gl_位置=投影_矩阵*(模型_矩阵*位置_英寸);\n”
“}\n”;
静态常量char base_fs_source[]=
“#版本410\n”
“\n”
“布局(位置=0)输出vec4颜色;\n”
“\n”
“在VS_FS_顶点中\n”
“{\n”
“vec3正常;\n”
“}顶点_in;\n”
“\n”
“作废主(作废)\n”
“{\n”
“vec3 normal=顶点_in.normal;\n”
颜色=vec4(0.2,0.1,0.5,1.0)*(0.2+pow(abs(normal.z),4.0))+vec4(0.8,0.8,0.8,0.0)*pow(abs(normal.z),137.0);\n
“}\n”;
VGlatachShaderSource(基本投影、GL顶点着色、基本投影与源);
VGlatachShaderSource(基本程序、GL片段着色器、基本fs源);
GLLINK计划(基本程序);
glUseProgram(基本程序);
基本模型矩阵位置=glGetUniformLocation(基本程序,“模型矩阵”);
基本投影矩阵位置=glGetUniformLocation(基本投影矩阵);
fur_prog=glCreateProgram();
静态常量char fur_vs_source[]=
“#版本410\n”
“\n”
“vec4位置中的布局(位置=0)\u in;\n”
“vec3中的布局(位置=1)正常\u in;\n”
“vec2 texcoord_中的布局(位置=2);\n”
“\n”
“out VS_GS_顶点\n”
“{\n”
“vec3正常;\n”
“vec2 tex_coord;\n”
“}顶点_out;\n”
“\n”
“作废主(作废)\n”
“{\n”
“顶点_out.normal=法线_in;\n”
“顶点_out.tex_coord=texcoord_in;\n”
“gl_位置=位置_in;\n”
“}\n”;
静态常量char fur\u gs\u source[]=
“#版本410\n”
“\n”
“中的布局(三角形);\n”
布局(三角形带,最大顶点=240)输出;\n
“\n”
“统一mat4模型\u矩阵;\n”
“一致mat4投影矩阵;\n”
“\n”
“统一整型毛发\u层=30;\n”
“均匀浮动毛发深度=5.0;\n”
“\n”
“在VS\u GS\u顶点中\n”
“{\n”
“vec3正常;\n”
“vec2 tex_coord;\n”
“}顶点_在[];\n”
“\n”
“输出GS\U FS\U顶点\n”
“{\n”
“vec3正常;\n”
“vec2 tex_coord;\n”
“平坦浮动毛发强度;\n”
“}顶点_out;\n”
“\n”
“作废主(作废)\n”
“{\n”
int i,层;\n
“浮动显示增量=1.0/浮动(毛发层);\n”
“浮点d=0.0;\n”
“vec4位置;\n”
“\n”
“对于(层=0;层<毛发层;层++)\n”
“{\n”
“对于(i=0;iglGetProgramInfoLog(fur_prog, sizeof(buffer), &length, buffer);
std::cout << length << std::endl;  
std::cout << buffer << std::endl; 
Geometry info
-------------
(0) : error C6033: Hardware limitation reached, can only emit 146 vertices of this size