Skip to content

Commit b2ea05c

Browse files
committed
Rendering logic, logging
1 parent 097e497 commit b2ea05c

File tree

4 files changed

+35
-15
lines changed

4 files changed

+35
-15
lines changed

blender-lambda-consumer/consumer_function.py

+13-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
1-
import json
2-
import os
31
import boto3
4-
2+
import json
53
import logging
6-
logging.basicConfig(level=logging.INFO)
7-
logger = logging.getLogger(__name__)
4+
import os
5+
import sys
6+
7+
# from https://gist.github.com/niranjv/fb95e716151642e8ca553b0e38dd152e
8+
logger = logging.getLogger()
9+
for h in logger.handlers:
10+
logger.removeHandler(h)
11+
h = logging.StreamHandler(sys.stdout)
12+
FORMAT = '[%(levelname)s] %(message)s'
13+
h.setFormatter(logging.Formatter(FORMAT))
14+
logger.addHandler(h)
15+
logger.setLevel(logging.INFO)
816

917
S3_BUCKET_NAME = os.environ['S3_BUCKET_NAME']
1018
LOCAL_RENDER_FILE = '/tmp/render_file.blend'

blender-lambda-producer/get_frames.py

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import bpy
22

33
scene = bpy.context.scene
4+
if scene:
5+
print('Scene found.')
6+
47
print(f"Frame range: {scene.frame_start}-{scene.frame_end}")

blender-lambda-producer/producer_function.py

+18-9
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,18 @@
55
import subprocess
66
import boto3
77
import re
8-
98
import logging
10-
logging.basicConfig(level=logging.INFO)
11-
logger = logging.getLogger(__name__)
9+
import sys
10+
11+
# from https://gist.github.com/niranjv/fb95e716151642e8ca553b0e38dd152e
12+
logger = logging.getLogger()
13+
for h in logger.handlers:
14+
logger.removeHandler(h)
15+
h = logging.StreamHandler(sys.stdout)
16+
FORMAT = '[%(levelname)s] %(message)s'
17+
h.setFormatter(logging.Formatter(FORMAT))
18+
logger.addHandler(h)
19+
logger.setLevel(logging.INFO)
1220

1321
QUEUE_NAME = os.environ['QUEUE_NAME']
1422
S3_BUCKET_NAME = os.environ['S3_BUCKET_NAME']
@@ -50,24 +58,24 @@ def handler(event, context):
5058

5159

5260
def get_frame_range(render_request: dict) -> Tuple[int, int]:
61+
if 'frame_start' in render_request and 'frame_end' in render_request:
62+
return (int(render_request['frame_start']), int(render_request['frame_end']))
63+
5364
logger.info(f'Getting frame range from {LOCAL_RENDER_FILE}')
5465
proc = subprocess.Popen(['blender', '-b', LOCAL_RENDER_FILE, '-P', 'get_frames.py'], stdout=subprocess.PIPE)
5566
(out, err) = proc.communicate()
5667
logger.debug(f'get_frames output: {out}')
5768
logger.debug(f'get_frames error: {err}')
5869

59-
matches = re.findall(r'\d+-\d+', out.decode('utf-8'))
70+
matches = re.findall(r'Frame range: (\d+-\d+)', out.decode('utf-8'))
6071
if len(matches) == 0:
61-
raise Exception('No frame range found in file')
72+
raise Exception('No frame range found in file, output found:' + out.decode('utf-8'))
6273
(file_frame_start, file_frame_end) = matches[0].split('-')
6374

6475
if (not file_frame_start or not file_frame_end):
6576
raise Exception(f'Failed to get frame range from file.')
6677

67-
frame_start = render_request['frame_start'] if 'frame_start' in render_request else int(file_frame_start)
68-
frame_end = render_request['frame_end'] if 'frame_end' in render_request else int(file_frame_end)
69-
70-
return frame_start, frame_end
78+
return (int(file_frame_start), int(file_frame_end))
7179

7280

7381
def queue_render_jobs(file_name, frame_start, frame_end, support_files):
@@ -90,6 +98,7 @@ def check_s3_file_exists(file_name):
9098

9199

92100
def retrieve_file_from_s3(file_name):
101+
logger.info(f'Retrieving file {file_name} from S3 bucket {S3_BUCKET_NAME} to {LOCAL_RENDER_FILE}')
93102
s3_bucket.download_file(file_name, LOCAL_RENDER_FILE)
94103

95104

render.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ done
1010
SUPPORT_FILES_STRING="${SUPPORT_FILES_STRING%?} ]"
1111

1212
PUBLIC_URL=$(terraform output -raw public_url)
13-
DATA='{ "file_name": "'$BLENDER_FILE'", "support_files": '$SUPPORT_FILES_STRING' }'
13+
DATA='{ "file_name": "'$BLENDER_FILE'", "support_files": '$SUPPORT_FILES_STRING', "frame_start": 1, "frame_end": 165 }'
1414

1515
curl -s \
1616
-X POST \

0 commit comments

Comments
 (0)