To preface: I am very new to lighting in Blender and how it works, and this is basically the first full-blown scene I’ve added proper lighting to. I have a screen where I want to play a video on it and have it emit light that’s dependent on the video playing on it, but since I’m using EEVEE Next, I’m not sure how to make it do that. I can’t find any tutorials for this for 4.2+. And no, I can’t change to Cycles because I’m using toon shaders that are EEVEE-specific. Here’s a picture of the scene for reference:
Use raytracing. This will give you what you want directly, but will only work if the screen is visible in the render, because Eevee’s raytracing is screen space only. Also, it will change the shading of the entire scene so it might not be good for your art style.
Are your render settings correct? If a new file works, your project file settings must have some wrong settings.
If this is in viewport, is world and scene light on?
Not sure? I’ve been trying to get sharper shadows and lights since I’m doing cel/toon shading, so I’ve had to do some weird stuff to get anything remotely close to what I want.
Well, you can reset the settings when you right-click on them. But you would have to go through all of them manually.
But I think this has to do with your cel shading setup.
I never use this but what is the alpha doing in the second part of the node setup?
From what I see it has no value / 1.00 since it is not patched to the .png alpha.
It just starts at the Shader to RGB node.
Anyway, maybe, just for the screen-emissive surface, use another, simple diffuse setup where you plug the video / screen content in - no cel shading there.
correct, but in my testing, I couldn’t get any diffuse raytracing to pass through the shader to rgb node at all. That’s the only way that the shader is receiving lighting from the world, so if that’s not working, nothing else about the shader will work with that.
Okay, yeah, that makes sense. Pardon my ignorance, but is there a way to get the average color of a texture via nodes? Just trying to figure out a way to automate this as much as possible since the video playing on the screen is going to be fairly long.
I don’t know any direct way to do it automatically.
I’m sure there’s some sort of python tricks you could use to streamline the process somewhat, but no easy buttons unfortunately.
The further I get into this project, the more I realize how much I screwed myself over with choosing EEVEE as the rendering engine with toon shaders. I will just have to take this as a learning opportunity and deal with it. Thank you anyway for the help.