如何在 Asymptote 中定义材料?

如何在 Asymptote 中定义材料?

我在 Asymptote 文档中搜索并发现材料在 three_light.asy 中作为结构处理,其定义如下:

struct material {
pen[] p; // diffusepen,ambientpen,emissivepen,specularpen
real opacity;
real shininess;
void operator init(pen diffusepen=black, pen ambientpen=black,
                 pen emissivepen=black, pen specularpen=mediumgray,
                 real opacity=opacity(diffusepen),
                 real shininess=defaultshininess) {
p=new pen[] {diffusepen,ambientpen,emissivepen,specularpen};
this.opacity=opacity;
this.shininess=shininess;
}

该文件称,这些是用来

基于 Phong-Blinn 镜面模型实现 OpenGL 风格的照明。

在哪里可以获得有关如何定义参数的信息/示例?例如,如何利用这一点来定义玻璃材料并绘制具有一定偏转/透明度的玻璃杯/立方体?或者是否有可用的材料定义可供我入门?

相关内容