Performance & Rendering Issues With 3D Food Models Used on My Texas Roadhouse Menu Website

I’m running into some unexpected performance and rendering problems with a set of 3D food assets that I created in Blender for my Texas Roadhouse menu website, and I’m hoping someone here might point me in the right direction. I built a few detailed models mainly steaks, sides, drinks, and a couple of environment props to use as interactive elements on the website. These models look great in Blender, but once exported and integrated into the site, the loading times and performance metrics are significantly worse than expected, even on devices with decent hardware. I’ve tried simplifying materials and textures, but the slowdown persists.

The first major issue seems to be texture optimization. I baked several texture maps (albedo, roughness, normal, displacement) at 4K because I wanted crisp detail for close-ups, but even after scaling them down to 2K, the GLTF/GLB files are still fairly large. When using Blender’s texture packer or manually reducing resolution, the quality drops sharply, especially on glossy items like steaks and buttered rolls. I’m not sure if my material node setups are too complex or if I’m exporting something incorrectly during the GLTF process.

Another problem occurs with lighting and shading once the models leave Blender. In Eevee and Cycles, everything looks fine, but when viewed in the browser (using Three.js), the shading becomes inconsistent some food surfaces appear too flat while others become overly shiny or washed out. This makes the Texas Roadhouse menu items look unrealistic compared to the intended design. I’ve tried switching between different normal map formats, enabling/disabling tangent space normals, and recalculating mesh normals, but the issue keeps returning across multiple exports.

I’m also noticing that the polygon counts might be higher than necessary, even though I used modifiers like Subdivision and Bevel only where needed. The steaks in particular use sculpted displacement, which I baked into a normal map, but the high-res topology still seems to sneak into the export. Even the decimated versions don’t perform as well as expected. I’m wondering if Blender’s export settings are retaining hidden geometry, or if I need to approach retopology in a more optimized way to reduce overhead for real-time rendering on the website.

There’s also a weird issue with animation playback. I added subtle looping animations—like a glistening highlight moving across the steak surface to make the menu feel more dynamic. These animations function perfectly inside Blender, but after exporting, some of them jitter or desync in the browser. I’ve checked keyframes, interpolation modes, and even tried baking animations before export, but nothing provides a consistent fix. I’m not sure if this is a Blender export issue or something related to Three.js handling.

Finally, I’d appreciate any advice on best practices for optimizing Blender models specifically for use on commercial websites. Since my project revolves around Texas Roadhouse menu items, I want the highest realism possible without sacrificing performance. If anyone has workflows for texture compression, node simplification, retopology strategies, or GLTF settings that preserve quality while reducing size, I would be grateful. I’m also open to switching render engines or baking strategies if it helps produce assets that behave more consistently on the web. Sorry for the long post!

Well… there is a reason why 3D models are optimized for the used graphic engine and also the materials are migrated to the wanted material system of the target engine. When using any game engine there is also to consider the minimum system requirements which will may leads to chooseable details in amount of geometry and/or details and also “effects” (material details).

In the case of a website one may have also to consider that not any computer with a web browser is suited to run some “advanced 3D webapp” even if the browser “can do it”. Some only have a CPU with an internal GPU which is mostly enough to do some office work. Especially if you want some kind of “realism” to reflect the content of the websites topic.

So even when there might be some more info about the models and materials it simply might “not work” on any person viewing the website over the internet so you might choose a more simpler/ stylistic approach or use some prerendered animations which even then might be too much for some users system. :person_shrugging:

Thanks for the explanation that actually helps put things into perspective. I was definitely aiming for a level of realism that might just be too heavy for a general-audience website, especially considering how many users rely on integrated GPUs. I’ll revisit my approach and try to find a better balance between visual quality and performance.

I’ll also look into simplifying the materials specifically for the Three.js environment instead of trying to carry over my Blender setups directly. Maybe a more stylized or lightly-baked look would be more practical for web delivery. I appreciate the reality check and the suggestions it gives me a clearer idea of where I may need to adjust my pipeline.

I suggest that you put an image, or maybe an animated GIF, on the web-site. At 72DPI resolution, nothing more. I would hazard that most real-world visitor’s web browsers won’t be able to run the other files – and there won’t be any actual advantage (in terms of advertising food), even if they could. Your objective isn’t to impress them – it is to sell food.