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