workshop rework
This commit is contained in:
1 parent
a3a80dfa16
commit
fb39e290c0
115 files changed
+1865
-497
No files matched your search
@@ -0,0 +1,41 @@
|
||||
"""Verify custom settings, preset overrides and PNG dimensions inside UE."""
|
||||
import struct
|
||||
|
||||
import unreal
|
||||
|
||||
from ue_workshop import Renderer, render
|
||||
from ue_workshop.paths import PROJECT
|
||||
|
||||
for kwargs in ({"width": 0}, {"height": -1}, {"samples": 0}, {"warmup": -1}, {"width": 1.5}, {"samples": True}):
|
||||
try:
|
||||
Renderer(**kwargs)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
raise AssertionError(f"Accepted invalid settings: {kwargs}")
|
||||
preset = Renderer.from_preset("final", width=800)
|
||||
assert (preset.width, preset.height, preset.samples, preset.warmup) == (800, 720, 4, 32)
|
||||
code = (PROJECT / "exercises/my_shot.py").read_text(encoding="utf-8")
|
||||
code = code.replace('Scene("MyShot")', 'Scene("RendererSmoke")')
|
||||
code = code.replace('materials.color("Character"', 'materials.color("RendererSmokeCharacter"')
|
||||
code = code.replace('materials.color("Floor"', 'materials.color("RendererSmokeFloor"')
|
||||
namespace = {"__name__": "__main__"}
|
||||
exec(compile(code.replace("RENDER = True", "RENDER = False"), "my_shot.py", "exec"), namespace)
|
||||
renderer = Renderer(width=320, height=180, samples=2, warmup=0)
|
||||
output = renderer.render(namespace["shot"], single_frame=24)
|
||||
config = render._active["queue"].get_jobs()[0].get_configuration()
|
||||
aa = config.find_setting_by_class(unreal.MoviePipelineAntiAliasingSetting)
|
||||
assert aa.spatial_sample_count == 2
|
||||
assert aa.engine_warm_up_count == 0
|
||||
|
||||
|
||||
def verify(executor, success):
|
||||
if not success:
|
||||
return
|
||||
frames = list((output / "frames").glob("*.png"))
|
||||
assert len(frames) == 1
|
||||
assert struct.unpack(">II", frames[0].read_bytes()[16:24]) == (320, 180)
|
||||
unreal.log("[Workshop] Custom renderer: PNG dimensions 320x180 verified.")
|
||||
|
||||
|
||||
render._active["executor"].on_executor_finished_delegate.add_callable_unique(verify)
|
||||
Reference in new issue
Block a user