Skip to content

Commit 7bf0fa5

Browse files
Various fixes:
* Fix bogies drawing transition frames * Reset ambient occlusion on init (fix over exposure) * Reset number of recolorables to 2 when selecting VEHICLE render * Removed sprites.json merging
1 parent cf109ab commit 7bf0fa5

File tree

6 files changed

+28
-16
lines changed

6 files changed

+28
-16
lines changed

loco-graphics-helper/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"name": "Loco Graphics Helper",
2626
"description": "Render tool to replicate Locomotion graphics (based on RCT Graphics Helper)",
2727
"author": "Olivier Wervers & OpenLoco Team",
28-
"version": (0, 1, 4),
28+
"version": (0, 1, 5),
2929
"blender": (2, 79, 0),
3030
"location": "Render",
3131
"support": "COMMUNITY",

loco-graphics-helper/builders/scene_builder.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,13 @@ def build(self, context):
7373
dome_light_obj.parent = vertical_joint_obj
7474

7575
# Environment lighting
76-
bpy.data.worlds["World"].light_settings.use_environment_light = True
77-
bpy.data.worlds["World"].light_settings.environment_energy = 0.15
78-
bpy.data.worlds["World"].light_settings.gather_method = "RAYTRACE"
79-
bpy.data.worlds["World"].light_settings.distance = 0
80-
bpy.data.worlds["World"].light_settings.samples = 1
76+
light_settings = scene.world.light_settings
77+
light_settings.use_ambient_occlusion = False
78+
light_settings.use_environment_light = True
79+
light_settings.environment_energy = 0.15
80+
light_settings.gather_method = "RAYTRACE"
81+
light_settings.distance = 0
82+
light_settings.samples = 1
8183

8284
def create_camera(self, context):
8385
name = self.prefix + "Camera" + self.suffix

loco-graphics-helper/operators/vehicle_render_operator.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,10 @@ def should_render_feature(self, key, props):
6666

6767
def add_render_angles(self, car_object):
6868
props = car_object.loco_graphics_helper_vehicle_properties
69+
is_bogie = car_object.loco_graphics_helper_object_properties.object_type == "BOGIE"
6970
animation_frames = props.number_of_animation_frames
7071
roll_frames = 1 if props.roll_angle == 0 else 3
72+
7173
for i in range(len(track_angle_sections_names)):
7274
key = track_angle_sections_names[i]
7375
if self.should_render_feature(key, props):
@@ -79,6 +81,10 @@ def add_render_angles(self, car_object):
7981
base_view_angle, 0, vertical_angle=track_section[2])
8082

8183
num_viewing_angles = track_section[1]
84+
if track_section[0] and is_bogie:
85+
# Bogies have no transition sprites
86+
continue
87+
8288
if not track_section[0]:
8389
if i == 0:
8490
num_viewing_angles = int(props.flat_viewing_angles)

loco-graphics-helper/processors/sub_processes/sprites_manifest_processor.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,8 @@ def get_index(output_info):
3737

3838
output_info_list.sort(key=get_index)
3939

40-
images = []
41-
if os.path.exists(file_path):
42-
with open(file_path, "r") as images_file:
43-
images = json.loads(images_file.read(),
44-
object_pairs_hook=OrderedDict)
45-
images_file.close()
46-
4740
with open(file_path, "w") as images_file:
41+
images = []
4842
for output_info in output_info_list:
4943
while len(images) <= output_info.index:
5044
images.append("")

loco-graphics-helper/properties/general_properties.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@
1313

1414
from ..models.palette import palette_colors, palette_colors_details
1515

16+
def render_mode_update_func(self, context):
17+
scene = context.scene
18+
props = scene.loco_graphics_helper_general_properties
19+
20+
# Vehicles **always** draw in game with 2 recolorables
21+
if props.render_mode == "VEHICLE":
22+
props.number_of_recolorables = 2
1623

1724
class GeneralProperties(bpy.types.PropertyGroup):
1825
script_file = os.path.realpath(__file__)
@@ -96,7 +103,8 @@ class GeneralProperties(bpy.types.PropertyGroup):
96103
"Renders a wall piece.", 3),
97104
("TRACK", "Track",
98105
"Renders track pieces.", 4)
99-
)
106+
),
107+
update=render_mode_update_func
100108
)
101109

102110
rendering = bpy.props.BoolProperty(

loco-graphics-helper/rct_graphics_helper_panel.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ def draw_track_panel(self, scene, layout):
213213
# row.operator("render.loco_track", text=text)
214214
@staticmethod
215215
def get_number_of_sprites(object):
216+
is_bogie = object.loco_graphics_helper_object_properties.object_type == "BOGIE"
216217
props = object.loco_graphics_helper_vehicle_properties
217218

218219
multiplier = props.number_of_animation_frames
@@ -223,13 +224,14 @@ def get_number_of_sprites(object):
223224
if props.rotational_symmetry:
224225
multiplier = multiplier / 2
225226

227+
num_transition_sprites = 0 if is_bogie else 4 + 4
226228
num_sprites = 0
227229
if props.sprite_track_flags[0]:
228230
num_sprites = int(props.flat_viewing_angles) * multiplier
229231
if props.sprite_track_flags[1]:
230-
num_sprites = num_sprites + (int(props.sloped_viewing_angles) * 2 + 8) * multiplier
232+
num_sprites = num_sprites + (int(props.sloped_viewing_angles) * 2 + num_transition_sprites) * multiplier
231233
if props.sprite_track_flags[2]:
232-
num_sprites = num_sprites + (int(props.sloped_viewing_angles) * 2 + 8) * multiplier
234+
num_sprites = num_sprites + (int(props.sloped_viewing_angles) * 2 + num_transition_sprites) * multiplier
233235
return int(num_sprites)
234236

235237
def draw_vehicle_panel(self, scene, layout):

0 commit comments

Comments
 (0)