@agpwhy
2021-12-10T01:48:15.000000Z
字数 1908
阅读 250
这周前段时间都在准备给大导师的汇报工作,没有额外考虑写啥内容。就拿前段时间Y叔推荐的另一个和新冠相关的包来水一期。
https://github.com/tylermorganwall/coronaobj
这个团队也是之前用R做3D渲染非常牛的团队。R的3D建模来源是来自于National Institute of Allergy and Infectious Diseases (NIAID)。https://3dprint.nih.gov/discover/3dpx-013323
包的配置和安装没什么特殊的。有些地方可能需要自己额外搞一点包,推荐在Windows或Linux上搞,可能省去一些麻烦。
remotes::install_github("tylermorganwall/coronaobj")
remotes::install_github("tylermorganwall/rayrender")
library(coronaobj)
library(rayrender)
基本上就只需要这两个。
然后就画图就行了。下面注意sample,sample取得越高,图片越清晰。按照介绍,这是取样大小,取得越多,波面图也就约精致。
obj_model("defaults.obj", vertex_colors = TRUE) %>%
add_object(sphere(y=10,z=10,x=10, material=light(intensity=100))) %>%
add_object(sphere(y=10,z=10,x=-10, material=light(intensity=100))) %>%
render_scene(parallel=TRUE, samples = 10, fov = 7, min_variance=0, focal_distance = 9.6,
width=800,height=800, filename = "SARS-COV-2.png")
write_corona_obj("custom_color3.obj", color_membrane = "#ed645c",
color_spike = "#a32b24", color_open_spike = "#c91271")
options(cores=36)
generate_ground(depth=-0.55,material = metal(color="darkred", fuzz=0.025)) %>%
add_object(obj_model("custom_color3.obj", vertex_colors = TRUE)) %>%
add_object(obj_model("custom_color3.obj", z=-6,x=0.8,y=0.5, angle=c(0,90,0),vertex_colors = TRUE)) %>%
add_object(obj_model("custom_color3.obj", z=-3,x=-0.5,y=0.2, angle=c(0,180,0), vertex_colors = TRUE)) %>%
add_object(sphere(y=10,x=-10, material=light(color="white",intensity=100))) %>%
add_object(sphere(y=0,x=10, material=light(color="purple",intensity=100))) %>%
render_scene(parallel=TRUE, samples = 1000, focal_distance = 9.6, fov=10,
ambient_light = TRUE, min_variance=0,
backgroundhigh = "black", backgroundlow = "darkred",
aperture=0.2, width=800,height=800, clamp_value=10,filename = "Multi-SARS-COV-2.png")
这里选samples=1000
,会花很长时间。我借用了服务器,使用了36cores,也花了好久。
最后出来了就是这个效果。
还可以搞gif动画。
具体的操作可以参考这个。https://www.tylermw.com/polar-ice-data-in-r-with-rayrender/
需要的计算力太高了(就是做一百多张这样的图片最后黏起来一张张放)最后做出来的话,结果类似这样。
![dynapic.gif-7163.9kB][1]