schroef / Save-Render-Presets

Allows user to save render settings per engine
9 stars 1 forks source link

Error when loading EEVEE preset on Blender 4.0.2 #3

Open etherealxx opened 5 months ago

etherealxx commented 5 months ago

Saving preset is fine, but when i load it on a different file, i got this error

Failed to execute the preset: SyntaxError('invalid syntax', ('C:\\Users\\Ethereal\\AppData\\Roaming\\Blender Foundation\\Blender\\4.0\\scripts\\presets\\render-presets/eevee\\eevee_ao_ssr.py', 16, 25, 'eevee.diffuse_options = <bpy_struct, RaytraceEEVEE at 0x0000016B1B38FA88>\n', 16, 26))

Here's a visual representation of said preset: image image

Blender version used: 4.0.2 System Info: Windows 10.0.22631 - dedicated NVIDIA GeForce GTX 1050 Ti (NVIDIA; 32.0.15.5599) - 12th Gen Intel(R) Core(TM) i3-12100F (8 Threads)

schroef commented 5 months ago

Thanks. I'll need to take a look at what causing it. Probably some new setting, but it should catch that automatically

Ps is this a preset which was saved on a different blender version?

schroef commented 5 months ago

What's weird is that this options has been renamed to rayTraceOptionw, but that was done in blender 4.1. I see your version is 4.0.3. guess I need to check that release data then.

What happens if you make the present in your current version and than try to load it. I get the feeling this is a preset which was moved over when going fro. 3.6 to 4.0 or 4.0.3

This is the API change for 4.1 https://docs.blender.org/api/current/change_log.html

As I read in api 4.0 Eevee.diffuse_options was added https://docs.blender.org/api/4.0/change_log.html

I don't see an update log for 4.0.3 So I'm almost 100% sure they change the nameing then already

Try what I mentioned earlier. Ps you can open the preset file and comment out that line to around the error. You can do this by opening in a text editor and add a hashtag or # for the line.

Than load it and perhaps save the present again. See if that solves ir

etherealxx commented 5 months ago

Okay, to clarify:

here's the full preset code, with the lines commented : https://pastebin.com/hkttTAL7

I also tried blender 3.6 (create and import on that version) and this addon works just fine. so it's on 4.0 i guess

Cycles works just fine in 4.0.2

schroef commented 5 months ago

I just checked 4.1 and im seeing the same thing. I think this is a bug in blender itself. It return different prop than it should. It structured different than when the other keys are checked.

The issue is this, see blue highlighted line. it should return data as like all the others. Its kinda weird, i need to dig into this and see why this is. Screenshot 2024-06-28 130318

etherealxx commented 5 months ago

maybe because eevee.ray_tracing_options's type is a custom type? RaytraceEEVEE which is a struct image

it contains several variables inside, kinda like python class, or a dict image

also it says that eevee.ray_tracing_options is read only, which maybe that is what causing the problem? attempting to write to a read only variable when loading a preset?

sorry if i say some nonsense my python understanding is not that good

schroef commented 5 months ago

I got it fixed, i added an extra loop. I also found out there was still an error when the addon was installed from blank setup. It would not create main folder 'render-presets'

latest release gets it fixed

schroef commented 5 months ago

Still wonder what these settings actually are. I mean i remember something with temporal denoise, but that was for Cycles and was something hidden. I dont see any inputs for it neither. Perhaps its some hidden.

schroef commented 5 months ago

Let me know if it works for you know, so i can close this ticket

etherealxx commented 5 months ago

weird, now with your latest, i cannot save a preset

Python: Traceback (most recent call last):
  File "C:\Users\Ethereal\AppData\Roaming\Blender Foundation\Blender\4.0\scripts\addons\Save-Render-Presets\eevee_presets.py", line 137, in execute
    eevee_values.update(get_eevee_values())
  File "C:\Users\Ethereal\AppData\Roaming\Blender Foundation\Blender\4.0\scripts\addons\Save-Render-Presets\eevee_presets.py", line 31, in get_eevee_values
    ray_trace_opt = inspect.getmembers(bpy.context.scene.eevee.ray_tracing_options)
AttributeError: 'SceneEEVEE' object has no attribute 'ray_tracing_options'. Did you mean: 'ray_tracing_method'?

this appears when trying to save, after entering the preset name and pressing ok btton

schroef commented 5 months ago

Ow shoot, I forgot that in your version, it's still Calles "diffuse_options". I'll adjust that. I hope I can find a more beautiful manner, because now I need to add an extra loop for that blender version.

I've also asked on de talk how to do this cleaner

EDIT I really need to see how make this cleaner. Because blender 4.0.2 also has refraction_options and reflection_options. That makes to many exceptions.

schroef commented 3 months ago

@etherealxx Are you still on bl4.0.2 because im not sure i should implement this fix. Perhaps i should make a separate version for this issue. As we are now in bl4.2 already

etherealxx commented 3 months ago

@schroef i moved to 4.1.1 now. 4.0 has some bugs on its gltf exporter so i moved on. People will still use 4.1.1 though since a lot of older projects will breaks on the new EEVEE settings one 4.2. So yeah you can move on from 4.0, maybe also tell somewhere on your repo, which version of blender that won't work/get any more support. Thanks for responding🙏

schroef commented 3 months ago

So can you confirm that latest version works for you on bl4.1.1

I need to think about what to do with different versions. As they keep changing settings

etherealxx commented 3 months ago

image It seems like it ignores Simplify, Motion Blur and Freestyle, both in Cycles and EEVEE. idk if it's intentional. other than that it's working properly on 4.1.1.

schroef commented 3 months ago

Those are probably not settings from render engine. I need to check that

On Sat, Aug 10, 2024, 04:54 Etherealxx @.***> wrote:

image.png (view on web) https://github.com/user-attachments/assets/ccdeb71c-538c-4ee7-b8e2-2a2026052692 It seems like it ignores Simplify, Motion Blur and Freestyle, both in Cycles and EEVEE. idk if it's intentional. other than that it's working properly on 4.1.1.

— Reply to this email directly, view it on GitHub https://github.com/schroef/Save-Render-Presets/issues/3#issuecomment-2280427593, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABU2GAGT3PB5F7RJBRWOEALZQXIN3AVCNFSM6AAAAABKAR4WYGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBQGQZDONJZGM . You are receiving this because you were mentioned.Message ID: @.***>

schroef commented 3 months ago

As i thought and sort of remember, those are under scene > render settings. Not really linked to the engine settings. Which is what this preset system saves. The render settings contain every other setting, even those from the output panel.