Texture limit in eevee render settings?

Hi, i have a RTX 3060 6GB VRAM and 16GB RAM laptop. To help move around the scene on viewpoint without lagging and crashing, I put texture limit on preference to 256. Yes, textures are low res on viewpoint but i can actually navigate it without crashing and it gives enough visual info for me to work on my scene. I’m not following tutorials exactly and deviating a bit, so using higher resolution textures as well.

Yes, this is not a course-specific question, but a problem I stumbled across while doing the course.

In cycles, I can set the texture limit under Simplify under render settings. However, for Eevee, there is no option to set the texture limit under simplify—only for cycles. ChatGPT and other tools keep on insisting it’s there under simplify.

If it’s an update with Eevee next, please suggest how to use high-resolution textures for Eevee renders without changing texture size in viewpoint? I can’t use cycles for readers as my laptop melts down and takes a long while. I’m able to tweak Eevee settings enough to have good result without cycles but this texture thing affects workflow.

Please advise.

2 Likes

In Blender’s Eevee render engine , there is no direct “texture limit” setting like in Cycles’ Simplify settings. However, there are workarounds and considerations for managing texture size and memory usage effectively:

3 Likes

I’d love to know what the workaround is, I’m not able to figure it out. 🥹

1 Like

I must admit I don’t use a high-end workflow. I’ve a simple machine and workflow.
A work around could still be using lowres when developing and high res in final render mode.

Blender allows you to set a texture limit for the viewport under Preferences > Viewport > Textures Limit Size . This reduces the resolution of textures displayed in the viewport, but it does not affect the final render

2 Likes

Yes, that works, but the issue is, having to manually lowering limit and setting it to no limit under preferences just before render otherwise making it impossible to navigate the scene because of the lag is tedious workflow. Whole purpose of using eevee is for faster workflow as cycles always produces superior renders.Blender already has a texture limit override for renders built in for cycles i.e. set low limit in global preferences but no limit under render settings. However. for some inexplicable reason they decided to not give eevee the same override under it’s render settings and instead uses the global texture limit only. I’m surprised there is no simple fix for this, like even an addon or something since the blender devs are ignoring it. :face_holding_back_tears:

Blender allows you to set a texture limit for the viewport under Preferences > Viewport > Textures Limit Size . This reduces the resolution of textures displayed in the viewport, but it does not affect the final render

I have to emphasis, that’s only for cycles. Not eevee. For eevee it’s the same texture limit as in viewport. it affects the final render. Whole reason this post exists. :face_with_hand_over_mouth:

2 Likes

Blender allows you to set a texture limit for the viewport under Preferences > Viewport > Textures Limit Size . This reduces the resolution of textures displayed in the viewport, but it does not affect the final render

Yeah this is the workaround for Eevee, although there’s been a bug for a while where this affects the final render as well. So you would need to change the option back when rendering.

please suggest how to use high-resolution textures for Eevee renders without changing texture size in viewpoint?

You could do a trick with Geometry nodes to display one material when “Is Viewport” is true, then another material when it is false (i.e. when it is rendered). It’s a bit of work up front to set up, but the advantage is that you don’t need to remember to change anything when rendering.

Otherwise you have FedPete’s solution. It’s a good solution and you only need to remember to change the setting when rendering, which should not be that often.

2 Likes

The thing is, I already mentioned this in my original post though. The issue is, it’s a tedious worlflow having to manually change back and forth. The main reason anyone uses eevee is for speed and this workflow makes for an inefficient workflow. Each time i switch to no limit my laptop lags loading the textures in the viewport. I’m going to look up how to report the bug. It’s reassuring to know this is not the intended behavior and is a bug.

So it rendering in low limit on eevee too instead of just the viewport is a bug, I wonder if they have any plans on fixing it. Hardly anyone is talking about this.

2 Likes

this workflow makes for an inefficient workflow

Sure, I appreciate that and we all want a perfect workflow, but everything is relative. :slight_smile: Changing the setting takes 5 clicks – 6 if you switch to solid viewport shading first so that your laptop doesn’t lag. That’s a few seconds at most, and you shouldn’t need to F12 render that often.

If those few seconds when rendering save you time navigating through the scene, or save you time from working in Cycles instead, it’s probably a worthwhile trade-off.

Keep in mind that we’re always making these efficiency trade-offs in Blender. You’re already making a trade-off just by using Eevee. Sure, it’s good for rendering speed, but you still have to do more work to get it looking as good as Cycles does out of the box. That’s an inefficiency in the workflow, but it’s a compromise we make to get good render times.

Sometimes we just have to find trade-offs and workarounds, especially when working on older hardware. I was running a GTX 980 until last year, and sure there were inefficiencies when working in Blender, but they were a good learning process and worth the trade-off. A few things I would do in this situation:

  • Hide objects in the scene that are causing viewport lag.
  • Work in View Layers to separate parts of the scene.
  • Mix high res textures in the foreground with low res textures in the background.
  • Use geometry nodes to have dummy materials in the viewport and save high res textures for the render.

In any case, that bug has been around since at least 2019 – it would be great if it’s fixed soon, but it might be best to consider one of the workarounds for your workflow for now. :slight_smile:

Good luck.

3 Likes

Thanks for clarifying that the bug has been around for a while, but otherwise, the reply was needlessly condescending. The issue is the back-and-forth lag, combined with manual updating because an expected feature is not behaving as it’s supposed to. It’s silly to oversimplify it as just a couple of clicks and a trade-off for using eevee. You yourself acknowledged it’s not behaving as expected because of the bug.

It’s not the same as compensating rendering features between eevee and cycles. ~We could possibly be experiencing the same bug in cycles, but because of the override built-in for cycles render settings we may not even be aware if the bug is affecting cycles.~ Update: Tested without simplify in cycles, the bug is fixed in cycles apparently, but not in eevee. They probably patched cycles because it is the main render engine for blender. Most people with high end hardware can handle eevee without patching so its not reported enough for it to be a priority fix, in fact it’s probably because of the reports they also gave texture limit override for cycles. This farther proves eevee could benefit from dedicated override under simplify render settings too.

The lag as it loads high-res textures on switching limit and then again on rendering with it is an issue, not simply a couple of steps, switching shading mode adds further steps to something that shouldn’t even be an issue to begin with. Let’s not forget, one of the main reasons for using eevee is to have a close-to-production level preview while working as well as speeding up render.

If you are wondering about a use case, think of an animated scene involving scenes from multiple angles. Or a webcomic scene where we have to tweak and iterate quite a bit. I find going back and forth on rendered eevee scenes on my projects and lookiong into the bug, quite a few others are troubled by lack of texture limit override for eevee and no suitable workarounds or scripts. Not everyone can afford high-end systems. So, it’s best not to consider other’s genuine concerns as trivial.

Ideally, we should only have one delay during the render. That’s how it works with cycles. With Eevee, it should be like that, but much faster render after it loads resources. I feel you are being intellectually dishonest, and just by the tone of your reply, it was not in good faith. I’m disappointed to come across such a discourse in this community. Most of your reply could’ve been omitted as being condescending takes us away from the real issue and only demeans the one asking for help.

I’ll work on a script and share it for anyone interested to add a texture limit override for eevee under render settings, just like in cycles.

Update: I couldn’t get a script working, going to take a while to figure it out. I’m only an intermediate dev and don’t have any experience scripting for Blender. I’ll ask around some of my dev friends as well.

3 Likes

Sorry that you took it that way, it was only intended positively and to discuss efficiencies in our workflows. :slight_smile: Best of luck on the script.

3 Likes

First, eevee and cycles are 2 completely different types of render engines. The processing of textures are handled very differently. So it’s not as simple as well cycles has it then add it to eevee.

Second, If you are using eevee next(4.2 or newer) set your Max Shader Compilation Subprocesses to something other than the default 0. Max number is the max number of cores in your CPU. I Recommend 2 or 4 on laptops. Also setting memory limit on undoes is helpful especially if you have less then 32GB of RAM when working with higher resolution textures. These setting can be found in preferences(Ctrl+comma)->System->Memory & Limits

Third, here is a script that will put the texture limit from preferences on a panel on the Item tab of the n-panel.(Sidebar)

import bpy

class DDSUI(bpy.types.Panel):
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Item"
    bl_label = "limits"
    
    def draw(self, context):
        col = self.layout.column(align=True)
        col.prop(context.preferences.system, "gl_texture_limit", text="")

def register():
    bpy.utils.register_class(DDSUI)

def unregister():
    bpy.utils.unregister_class(DDSUI)
    
if __name__=="__main__":
    register()
3 Likes

Okay, this is a genuine attempt to address the topic. I appreciate it, and it has restored my faith in this community. :sparkles:

First, eevee and cycles are 2 completely different types of render engines. The processing of textures are handled very differently. So it’s not as simple as well cycles has it then add it to eevee.

I agree totally, they are different engines, but as the other user and @FedPete pointed out, Blender is only supposed to apply the texture limit (set on preferences) on the viewport, but it is affecting render due to an unaddressed bug. Unfortunately only cycles comes with a dedicated texture limit override under simplify for render. Eevee could really use this feature even if the bug gets fixed.

Third, here is a script that will put the texture limit from preferences on a panel on the Item tab of the n-panel.(Sidebar)

While this is not a render override like in cycles, it does improve quality of life somewhat. The script was throwing an warning, I tweaked it a bit.

import bpy

class VIEW3D_PT_limits(bpy.types.Panel):
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Item"
    bl_label = "limits"
    
    def draw(self, context):
        col = self.layout.column(align=True)
        col.prop(context.preferences.system, "gl_texture_limit", text="")

def register():
    bpy.utils.register_class(VIEW3D_PT_limits)

def unregister():
    bpy.utils.unregister_class(VIEW3D_PT_limits)
    
if __name__=="__main__":
    register()

Anyway, I’ll look into your suggestions.

3 Likes

Yeah, I created the script quickly and forgot to use proper naming convention for class. As for the texture limit setting affecting renders, There is already a bug report. https://projects.blender.org/blender/blender/issues/66436

There is already a proposal by the community to add this to simplify. So get as many people as you can to up vote this. The more up votes the higher the priority will be for the developers.
https://blender.community/c/rightclickselect/46A0/

3 Likes