Asymptote GL 编译错误

Asymptote GL 编译错误

我过去曾使用 Asymptote 生成大量图像。我最近升级到 2.65 版,但在编译简单文件时遇到了麻烦。(为了避免在我的 Windows 10 机器上产生混淆,我卸载了所有以前版本的 TeXLive 和 Asymptote,然后重新安装了新副本。还安装了 Ghostscript v 9.52。)

这是我的简单文件,名为test.asy

size(5cm,0); 
import three; 
draw(unitcube);

如果我使用 进行编译asy -f html test.asy,我就可以在浏览器中正常看到单位立方体。

如果我使用它进行编译asy -f pdf test.asy,我会得到一个最初不显示任何内容的 pdf,但在 Adob​​e Reader 中我可以单击并获得可旋转的 3D 图像。

如果我使用 进行编译asy -f pdf -noprc -render 0 test.asy,我会得到一个低质量的静态 pdf 图像。如果我选​​择... -f png ...

但是,如果我使用任何其他渲染设置(非 0)进行编译,或者根本没有渲染语句,我会收到一条很长的错误消息。

出了什么问题?我想构建一个高质量的 2D 图形(比 提供的更好-render=0)。以下是错误消息:

Error: Preprocessor error
Error: failed to preprocess the source.

GL Compile error
#version 130
#extension GL_ARB_uniform_buffer_object : enable
#define WIDTH
#define Nlights 1
const int Nmaterials=48;
in vec3 position;

uniform mat3 normMat;

#ifdef NORMAL
#ifndef ORTHOGRAPHIC
out vec3 ViewPosition;
#endif
in vec3 normal;
out vec3 Normal;
#endif

in int material;

#ifdef COLOR
in vec4 color;
out vec4 Color;
#endif

#ifdef WIDTH
in float width;
#endif

uniform mat4 projViewMat;
uniform mat4 viewMat;

flat out int materialIndex;

void main()
{
  vec4 v=vec4(position,1.0);
  gl_Position=projViewMat*v;
#ifdef NORMAL
#ifndef ORTHOGRAPHIC
  ViewPosition=(viewMat*v).xyz;
#endif
  Normal=normalize(normal*normMat);
#endif

#ifdef COLOR
  Color=color;
#endif

#ifdef WIDTH
  gl_PointSize=width;
#endif

  materialIndex=material;
}

terminate called after throwing an instance of 'int'

相关内容