我正在研究一种方法来训练人们更快地学习艺术(如何绘画/绘画),为此,我需要一个实用工具,允许我在不同的照明条件下创造简单的3D形状,并尽可能真实地再现光线和阴影,以便学习如何从不同的角度和不同的光照条件下绘制这些简单的形状。
我想到的简单形状是球体,盒子和圆柱体/管道。
准确再现光线和阴影是我的主要目标(这意味着我需要一个可定制的光源)。
理想情况下,我想要一个程序尽可能简单,便宜/免费,而不是付费。
发布于 2015-12-07 18:18:15
搅拌机
允许我创建简单的三维形状--我想到的简单形状是球体、盒子和圆柱体/管道。
具有平面、立方体、圆柱体、圆、球体、圆锥和环面的内置形状。
不同照明条件
你可以使用点灯、点灯、太阳灯、半球灯和区域灯。对于更真实的照明,您甚至可以下载lamp定义(由一些灯具供应商提供)并集成它们。
尽可能真实地再现光线和阴影
有几个渲染可用,搅拌机渲染是最快的之一,但这是有点难以获得照片现实渲染。周期较慢,产生更多的噪声图像,但如果你能等待足够长的时间,你将得到照片真实感的结果。
为了学习如何从不同的角度和在不同的照明条件下绘制这些简单的形状。
这一要求与前一项要求相矛盾。为什么你需要非常精确的照明,如果它是用于学习的目的?
准确再现光线和阴影是我的主要目标(这意味着我需要一个可定制的光源)。
点灯可以定制能源,下降,角度,软尺寸。足以得到成千上万的组合。
你可以有环境照明,环境照明,甚至HDR天空图像。
理想情况下,我想要一个程序尽可能简单,便宜/免费,而不是付费。
搅拌机绝对不是简单的。但这可能是唯一的免费和完整的程序来做到这一点。你应该计划40个小时的工作效率,并实现你想要的。我参加了搅拌机大师自然学院,花了大约40个小时才完成。
这是一个我可以在5分钟内创造的场景的例子。它有三个物体,一个平面作为地面和两个不同能量的光斑。它利用环境遮挡和间接照明。这是否足够现实,值得学习40小时的结果?

发布于 2014-08-25 21:58:50
我建议搅拌机 -虽然它有一个相当陡峭的学习曲线,但有许多优点:
发布于 2015-12-07 20:26:09
视觉Python不像搅拌机那么有能力,但更容易学习(但需要一些数学)。结果并不像搅拌机那样真实真实,但对于你的使用来说,它可能就足够了。
texture_and_lighting.py示例为72行,生成和动画图片如下:
在那里,条纹球从一边滚动到另一边,光线从前向后摆动。您可以使用鼠标右键在图像周围导航,中间可以导航到图像中。
只要稍微玩一下演示,我就可以制作:
"""
Steve Barnes 07/12/2015
Based on Bruce Sherwood, August 2006
Demonstration of transparency (opacity), materials, and local lights in Visual 5
"""
from __future__ import division
from visual import *
scene.width = scene.height = 1000
scene.forward = (-0.2,-0.2,-1)
width = 10 # of wood table
thick = 0.5 # thickness of wood
depth = 7 # of wood table
height = 2 # of side bars of table
R = 2 # radius of components
H = 10 # height of underside of ceiling above floor
L = 5 # length of pendulum to center of hanging lamp
# top of floor is at y=0 for convenience
floor = box(pos=(0,-thick/2,0), size=(width,thick,depth),
shininess=0, color=color.orange, material=materials.wood)
left = box(pos=(-(width/2+thick/2),height/2-thick,0), size=(thick,height,depth),
shininess=0, color=color.orange, material=materials.wood)
right = box(pos=(width/2+thick/2,height/2-thick,0), size=(thick,height,depth),
shininess=0, color=color.orange, material=materials.wood)
back = box(pos=(0,height/2-thick,-(depth/2+thick/2)), size=(width+2*thick,height,thick),
shininess=0, color=color.orange, material=materials.wood)
# Block at the top and the pendulum light
ceiling = box(pos=(0,H+thick/2,0), size=(width/10,thick,width/10), color=color.orange, material=materials.wood)
pendulum = frame(pos=(0,H,0), axis=(0,-1,0))
wire = curve(frame=pendulum, pos=[(0,0,0),(L,0,0)])
lamp = sphere(frame=pendulum, pos=(L,0,0), radius=0.03*L, color=color.white, material=materials.emissive)
# Cubic Planet
box(pos=(-0.3*width,R/4,-0.25*depth), size=(R, R, R), material=materials.earth)
# Make the Pipe
C1 = shapes.circle(pos=(0.15*width,R/4,0.3*depth), radius=R/3)#, axis=(0,H/4,0), visible=0)
C2 = shapes.circle(pos=(0.15*width,R/4,0.3*depth), radius=R/2)#, axis=(0,H/4,0), visible=0)
Ring = C2-C1
pipe = extrusion(pos=paths.line((0.15*width,0,0.2*depth), (0.15*width,R,0.2*depth)), shape=Ring, material=materials.bricks)
# Cone
cone(pos=(0.1*width,0,-0.15*depth), radius=R/2, axis=(0,2,0), color=color.cyan, material=materials.marble)
# Ball for good measure
sphere(pos=(0.15*width,R/4,-0.3*depth), radius=R/4, color=color.green, material=materials.marble)
# Ambiant Lighting
scene.lights = []
scene.ambient = color.gray(0.25)
l1 = distant_light(direction=(6,2,4), color=color.gray(0.3))
l2 = distant_light(direction=(-10,2,4), color=color.gray(0.2))
lamplight = local_light(frame=pendulum, pos=(L,0,0), color=color.gray(0.5))
scene.center = (0,0.4*H,0)
dt = 0.03
t = 0
while True:
rate(40)
angle = 0.02*cos(t)
pendulum.rotate(axis=(1,0,0), angle=angle)
t += dt它提供了:

https://softwarerecs.stackexchange.com/questions/10980
复制相似问题