@@ -315,8 +315,8 @@ <h2>Source</h2>
315315 fmat = bpy.data.materials.new(< span class ="s "> "Studio"</ span > )
316316 fmat.use_nodes = < span class ="k "> True</ span >
317317 fb = fmat.node_tree.nodes[< span class ="s "> "Principled BSDF"</ span > ]
318- fb.inputs[< span class ="s "> "Base Color"</ span > ].default_value = (< span class ="n "> 0.055 </ span > , < span class ="n "> 0.06 </ span > , < span class ="n "> 0.07 </ span > , < span class ="n "> 1.0</ span > )
319- fb.inputs[< span class ="s "> "Roughness"</ span > ].default_value = < span class ="n "> 0.5 </ span >
318+ fb.inputs[< span class ="s "> "Base Color"</ span > ].default_value = (< span class ="n "> 0.03 </ span > , < span class ="n "> 0.032 </ span > , < span class ="n "> 0.037 </ span > , < span class ="n "> 1.0</ span > )
319+ fb.inputs[< span class ="s "> "Roughness"</ span > ].default_value = < span class ="n "> 0.7 </ span >
320320 floor_me.materials.append(fmat)
321321 floor = bpy.data.objects.new(< span class ="s "> "Floor"</ span > , floor_me)
322322 scene.collection.objects.link(floor)
@@ -328,7 +328,7 @@ <h2>Source</h2>
328328 world = bpy.data.worlds.new(< span class ="s "> "World"</ span > )
329329 world.use_nodes = < span class ="k "> True</ span >
330330 < span class ="c "> # metals reflect the environment: keep a faint cool ambient so flanks never go black</ span >
331- world.node_tree.nodes[< span class ="s "> "Background"</ span > ].inputs[< span class ="s "> "Color"</ span > ].default_value = (< span class ="n "> 0.035 </ span > , < span class ="n "> 0.04 </ span > , < span class ="n "> 0.05 </ span > , < span class ="n "> 1.0</ span > )
331+ world.node_tree.nodes[< span class ="s "> "Background"</ span > ].inputs[< span class ="s "> "Color"</ span > ].default_value = (< span class ="n "> 0.02 </ span > , < span class ="n "> 0.022 </ span > , < span class ="n "> 0.028 </ span > , < span class ="n "> 1.0</ span > )
332332 scene.world = world
333333
334334 < span class ="k "> def</ span > light(name, loc, energy, size, col, rot):
@@ -339,10 +339,11 @@ <h2>Source</h2>
339339 ob.rotation_euler = tuple(math.radians(a) < span class ="k "> for</ span > a < span class ="k "> in</ span > rot)
340340 scene.collection.objects.link(ob)
341341
342- < span class ="c "> # metals live on reflections: big soft key, strong cool fill, warm rim kept low</ span >
343- light(< span class ="s "> "Key"</ span > , (-< span class ="n "> 3.5</ span > , -< span class ="n "> 4.5</ span > , < span class ="n "> 5.5</ span > ), < span class ="n "> 1400.0</ span > , < span class ="n "> 7.0</ span > , (< span class ="n "> 1.0</ span > , < span class ="n "> 0.98</ span > , < span class ="n "> 0.94</ span > ), (< span class ="n "> 48</ span > , < span class ="n "> 0</ span > , -< span class ="n "> 35</ span > ))
344- light(< span class ="s "> "Fill"</ span > , (< span class ="n "> 5.0</ span > , -< span class ="n "> 3.5</ span > , < span class ="n "> 2.5</ span > ), < span class ="n "> 600.0</ span > , < span class ="n "> 9.0</ span > , (< span class ="n "> 0.8</ span > , < span class ="n "> 0.87</ span > , < span class ="n "> 1.0</ span > ), (< span class ="n "> 65</ span > , < span class ="n "> 0</ span > , < span class ="n "> 50</ span > ))
345- light(< span class ="s "> "Rim"</ span > , (< span class ="n "> 1.5</ span > , < span class ="n "> 4.5</ span > , < span class ="n "> 2.2</ span > ), < span class ="n "> 700.0</ span > , < span class ="n "> 4.0</ span > , (< span class ="n "> 1.0</ span > , < span class ="n "> 0.7</ span > , < span class ="n "> 0.4</ span > ), (-< span class ="n "> 82</ span > , < span class ="n "> 0</ span > , < span class ="n "> 165</ span > ))
342+ < span class ="c "> # metals live on reflections: soft warm key, restrained cool fill, and the</ span >
343+ < span class ="c "> # warm wedge raking the back wall (docs/VISUAL-STYLE.md)</ span >
344+ light(< span class ="s "> "Key"</ span > , (-< span class ="n "> 3.5</ span > , -< span class ="n "> 4.5</ span > , < span class ="n "> 5.5</ span > ), < span class ="n "> 700.0</ span > , < span class ="n "> 6.0</ span > , (< span class ="n "> 1.0</ span > , < span class ="n "> 0.96</ span > , < span class ="n "> 0.9</ span > ), (< span class ="n "> 48</ span > , < span class ="n "> 0</ span > , -< span class ="n "> 35</ span > ))
345+ light(< span class ="s "> "Fill"</ span > , (< span class ="n "> 5.0</ span > , -< span class ="n "> 3.5</ span > , < span class ="n "> 2.5</ span > ), < span class ="n "> 160.0</ span > , < span class ="n "> 9.0</ span > , (< span class ="n "> 0.75</ span > , < span class ="n "> 0.85</ span > , < span class ="n "> 1.0</ span > ), (< span class ="n "> 65</ span > , < span class ="n "> 0</ span > , < span class ="n "> 50</ span > ))
346+ light(< span class ="s "> "Wedge"</ span > , (< span class ="n "> 2.5</ span > , < span class ="n "> 5.5</ span > , < span class ="n "> 4.0</ span > ), < span class ="n "> 380.0</ span > , < span class ="n "> 6.0</ span > , (< span class ="n "> 1.0</ span > , < span class ="n "> 0.76</ span > , < span class ="n "> 0.5</ span > ), (-< span class ="n "> 68</ span > , < span class ="n "> 0</ span > , < span class ="n "> 190</ span > ))
346347
347348 cam_data = bpy.data.cameras.new(< span class ="s "> "Cam"</ span > )
348349 cam_data.lens = < span class ="n "> 55.0</ span >
@@ -364,6 +365,8 @@ <h2>Source</h2>
364365 scene.render.resolution_y = < span class ="n "> 720</ span >
365366 scene.render.image_settings.file_format = < span class ="s "> 'PNG'</ span >
366367 scene.render.filepath = path
368+ < span class ="c "> # AgX would flatten the steel toward chalk (docs/VISUAL-STYLE.md)</ span >
369+ scene.view_settings.view_transform = < span class ="s "> 'Standard'</ span >
367370 bpy.ops.render.render(write_still=< span class ="k "> True</ span > )
368371 < span class ="k "> return</ span > os.path.exists(path) < span class ="k "> and</ span > os.path.getsize(path) > < span class ="n "> 0</ span >
369372
0 commit comments