Re-record the manual under the scene-referred pipeline
D19 changed how every raw photograph renders, so every picture was stale; all forty are recorded again from this tree. Beside the ones already in the page there is now one for Tone Mapping: an alpine frame whose clouds sit near white, its White Point raised to bring them back and lowered for a brighter picture, its Contrast raised, then Before. The panorama film unticks the first frame and ticks it back, so the Frames list and the re-solve show; it no longer films minutes of "Reading the frames", cutting from the first seconds of the job to the alignment. The manual's presets menu opens beside the rail, not beside the photograph.
This commit is contained in:
+41
-2
@@ -784,6 +784,34 @@ def develop_light():
|
||||
undo_all()
|
||||
|
||||
|
||||
@scene(media=['develop-tonemap.gif'], sources=DEVELOP_SRC + PIPELINE_SRC)
|
||||
def develop_tonemap():
|
||||
"""Tone Mapping on an alpine frame whose clouds are nearly white: the
|
||||
white point raised to bring the clouds back from white, then lowered
|
||||
for a brighter, harder picture, the contrast raised, and Before held.
|
||||
Its Contrast is the Light group's second, so it is taken by position."""
|
||||
at_develop(ALPS_SKY)
|
||||
group('Light')
|
||||
in_column('White Point@Slider')
|
||||
rec('develop-tonemap')
|
||||
pause(0.8)
|
||||
slide('White Point', TONEMAP_WHITE_UP)
|
||||
pause(1.2)
|
||||
slide('White Point', -TONEMAP_WHITE_DOWN)
|
||||
pause(1.2)
|
||||
x0, y0, x1, y1 = column()
|
||||
cx, cy = handle(dr.find('Contrast@Slider#-1', within=(x0, y0, x1, y1)))
|
||||
dr.drag(cx, cy, cx + TONEMAP_CONTRAST, cy, 25)
|
||||
pause(1.2)
|
||||
hold_before(1.6)
|
||||
pause(1.0)
|
||||
cut()
|
||||
undo_all()
|
||||
|
||||
|
||||
TONEMAP_WHITE_UP, TONEMAP_WHITE_DOWN, TONEMAP_CONTRAST = 80, 110, 90 # pixels along the track
|
||||
|
||||
|
||||
@scene(media=['develop-zoom.gif'], sources=DEVELOP_SRC + ['ui/dr-ui/src/develop/render.rs'])
|
||||
def develop_zoom():
|
||||
"""1:1 with a double-click, a pan, and then further in with the wheel.
|
||||
@@ -1289,11 +1317,22 @@ def join(name, parts):
|
||||
'core/dr-pano/src/**'])
|
||||
def panorama():
|
||||
select_pano()
|
||||
rec('panorama-a')
|
||||
rec('panorama-0')
|
||||
dr.click_on('Merge to panorama@Button')
|
||||
pause(4)
|
||||
cut()
|
||||
# Reading and aligning twelve frames is minutes on a busy machine; the
|
||||
# film shows it start and picks up once the alignment is on the page.
|
||||
dr.wait_for('Fill the border@RadioButton', 600)
|
||||
pause(3)
|
||||
shot('panorama-aligned')
|
||||
rec('panorama-a')
|
||||
pause(1)
|
||||
# The first frame left out and brought back: the rest are solved again
|
||||
# from the pairs already matched, so each takes a moment, not a re-read.
|
||||
for _ in range(2):
|
||||
dr.click(*dr.centre(f'{PANO_FIRST}.CR2@CheckBox'))
|
||||
pause(4)
|
||||
for projection in ('Perspective', 'Spherical', 'Cylindrical'):
|
||||
dr.click_on(f'{projection}@RadioButton')
|
||||
pause(5)
|
||||
@@ -1312,7 +1351,7 @@ def panorama():
|
||||
dr.click_on('Merge@Button')
|
||||
pause(8)
|
||||
cut()
|
||||
join('panorama', ['panorama-a', 'panorama-b'])
|
||||
join('panorama', ['panorama-0', 'panorama-a', 'panorama-b'])
|
||||
# The merge itself takes minutes too; the scene is done when the DNG is.
|
||||
wait_for_new(DEMO_LIBRARY, '.dng', started, 600) if DEMO_LIBRARY else pause(60)
|
||||
pause(5)
|
||||
|
||||
Reference in New Issue
Block a user