R语言rayrender包,csg_cone生成圆锥体
3.png
1.png
2.png
4.png
# Wed Jun 16 00:26:12 2021 -
# 字符编码:UTF-8
# R 版本:R 4.1 x64 for window 10
# cgh163email@163.com
# 个人笔记不负责任,拎了个梨🍐🍈
#.rs.restartR()
require(rayrender)
rm(list = ls());gc()
#csg_cone生成基本圆锥体:
#
generate_ground(material=diffuse(checkercolor="grey20")) %>%
add_object(csg_object(csg_cone(),material=glossy(color="red"))) %>%
render_scene(clamp_value=10,fov=20)
#通过指定起点和终点来更改方向
generate_ground(material=diffuse(color="dodgerblue4",checkercolor="grey10")) %>%
add_object(csg_object(csg_cone(start = c(-1,0.5,-2), end = c(1,0.5,-2),
radius=0.5),material=glossy(checkercolor="red"))) %>%
render_scene(clamp_value=10,fov=20,
lookat=c(0,0.5,-2),lookfrom=c(3,3,10))
#显示更改半径的效果
generate_ground(material=diffuse(color="dodgerblue4",checkercolor="grey10")) %>%
add_object(csg_object(
csg_combine(
csg_cone(start = c(-1,0.5,-2), end = c(1,0.5,-2), radius=0.5),
csg_cone(start = c(-0.5,1.5,-2), end = c(0.5,1.5,-2), radius=0.2)),
material=glossy(checkercolor="red"))) %>%
render_scene(clamp_value=10,fov=20,
lookat=c(0,0.5,-2),lookfrom=c(-3,3,10))
#在康奈尔盒子里画一个玻璃锥
generate_cornell() %>%
add_object(csg_object(
csg_cone(start = c(555/2,0,555/2), end = c(555/2,555/2+100,555/2), radius=100),
material=dielectric(attenuation=c(1,1,0.3)/100))) %>%
render_scene(clamp_value=10)
# Wed Jun 16 00:34:26 2021 --
dev.copy(png, "4.png");dev.off()