3D Render Portfolio Export: Blender, Cinema 4D, and Unreal to Web JPG
You spent 18 hours rendering a hero shot in Blender Cycles, the EXR master looks gorgeous in Affinity Photo, and then you drag the exported JPG onto ArtStation and the highlights are blown, the shadows are crushed, and the emissive material on your sci-fi panel looks like a flat sticker. The render is fine. The export pipeline is broken. This guide walks through the gamma, color-space, and tonemapping handoff that keeps 3D portfolio work intact when it lands on the web.
If that scenario sounds familiar, you are in good company. Every single render artist who has shipped a portfolio in the last decade has hit the same wall, and almost every solution comes down to the same three or four pipeline decisions. The catch is that those decisions feel invisible until they go wrong. The viewer that opens the EXR in your DCC sees a totally different image than Chrome opens after the JPG export. The job of this guide is to take that mystery out of the loop so the file that hits ArtStation looks the same as the file you signed off on at 2 a.m.
Background: linear light, display light, and the squeeze in between
Modern 3D renderers compute in scene-referred linear light. That means brightness has no ceiling — a window in your scene can be 50,000 nits, an emissive panel can be 200 nits, a shadow on the floor can be 0.005 nits, and the math just works. Display-referred output, on the other hand, is bounded. An 8-bit JPG can only encode 256 levels per channel, mapped onto whatever the viewer's monitor is calibrated to (typically sRGB or P3). The tonemap is the squeeze function that translates the unbounded linear scene into the bounded display image. Pick the wrong squeeze and your render either clips, banding-staircases, or muddies up.
Why 32-bit EXR has to be tonemapped before it becomes a JPG
Blender, Cinema 4D, and Unreal all render in linear floating point. A single pixel in an EXR can hold a value of 18.4 — far above the 1.0 ceiling of an 8-bit JPG. If you let the converter clip that to 255 with no tonemapping, every emissive panel, every chrome highlight, every sunlit window goes to pure white and stays there. The work happens in the linear-to-display transform: ACES, AgX, Filmic, or a custom OCIO config. Pick one, apply it inside the 3D app's view transform, and only then export to 8-bit JPG. AgX has been Blender's default since 4.0 and tends to hold saturated reds and emissives more gracefully than Filmic for portfolio work.
Recommended render-out settings per engine
Across all three engines the rule is the same: render to 32-bit linear EXR multilayer, then do the JPG bake in a compositor or a still-image editor. Specifics:
- Blender Cycles: Output to OpenEXR Multilayer, 32-bit float, ZIP compression. View transform AgX, look set to Medium High Contrast for most hero shots.
- Cinema 4D Redshift: Render to EXR via the Redshift AOV manager, 32-bit half-float is fine for portfolio sizes. Use the OCIO config bundled with Redshift 3.5 and above.
- Unreal Engine 5 Movie Render Queue: Output to EXR (Multilayer), enable Console Variables for r.HighResScreenshot to disable the eye-adaptation override. Apply a LUT inside the Color Grading panel before the final JPG bake.
Step-by-step walkthrough: EXR to portfolio-ready JPG
- Render to 32-bit EXR multilayer. Never render directly to JPG from the engine. You want a master file you can re-grade three months from now without re-rendering.
- Apply view transform inside the DCC. AgX for Blender, the Redshift OCIO config for Cinema 4D, ACES or a custom LUT inside Unreal. Verify the look matches what you saw during the render.
- Composite passes if needed. Bloom on the emissive AOV, a soft glow on highlights, vignette and grain at the end. Keep these moves subtle — portfolio reviewers spot heavy-handed post.
- Export an intermediate 16-bit TIFF or PNG. This is your grading buffer. You can move from this to JPG, WebP, or print without going back to the EXR.
- Bake to 8-bit sRGB JPG at quality 95. Embed the sRGB profile. Long edge 3,840 px for ArtStation hero, 1,920 px for thumbnails.
- Spot-check 100 percent crops. Brightest area, darkest area, any emissive surface, any chrome highlight. If anything clipped, go back two steps and roll off the tonemap.
- Compress for the portfolio site. Run the final JPG through the JPG compressor to drop file size 30 to 45 percent.
- Generate a WebP fallback. Use the JPG to WebP converter for self-hosted portfolios; ArtStation re-encodes anyway.
The bake to 8-bit JPG
Once the EXR is tonemapped to 0-1 display-referred values, save out to JPG at quality 90 to 95 for portfolio work. ArtStation re-compresses uploads, so giving it a quality-95 source means the platform's pass still looks clean. Keep the long edge at 3,840 px for ArtStation hero images and 1,920 px for project thumbnails. Embed the sRGB profile in the JPG — without it, browsers will guess and Safari sometimes guesses wrong.
If your compositor exports TIFF instead of JPG, run it through the TIFF to JPG converter at quality 92 and check a 100 percent crop of the brightest area. If you exported from a Photoshop PSD with adjustment layers baked, flattening cleanly without rasterizing smart objects is the goal.
Color space gotchas that ruin portfolios
The single biggest mistake is mixing color spaces along the pipeline. If your texture maps were authored in sRGB but plugged into a linear shader without conversion, your albedo will look washed out for the entire render. Verify the input transform on every texture node before you commit to a 6-hour render. Substance Painter exports as sRGB by default for base color and as linear for roughness, metallic, and normal — Blender and Cinema 4D both have presets that handle this automatically, but Unreal often needs the import setting set manually per texture.
On output, the JPG must be sRGB. Adobe RGB or DCI-P3 JPGs render fine in Safari but undersaturate in Chrome on non-color-managed monitors, which is most of your audience. Convert to sRGB before the final bake.
Common mistakes and how to fix them
- Mistake: rendering directly to JPG. Fix: render to EXR first, always. The five extra minutes saves the re-render two weeks later when the art director asks for a darker grade.
- Mistake: leaving the view transform on Standard or Raw. Fix: pick AgX, ACES, or a project-appropriate LUT and apply it before the bake. Standard gamma is not a tonemap.
- Mistake: exporting at Adobe RGB. Fix: convert to sRGB before saving the JPG. Verify with the image info tool.
- Mistake: quality 100 JPG at 8K resolution. Fix: quality 95 at 3,840 px is visually identical at portfolio display size and uploads in a fraction of the time.
- Mistake: forgetting to embed the color profile. Fix: turn on the "embed profile" checkbox in your export dialog. Safari treats untagged JPGs as sRGB but Firefox does not.
- Mistake: posting the same JPG to ArtStation and Instagram. Fix: re-export at 1,080 x 1,350 for Instagram. The square-portrait crop is different from a 16:9 hero.
Holding emissive detail
Emissive materials are the trickiest portfolio surface to export. A neon sign at intensity 25 in the shader will clip to white in any 8-bit output unless you compress the highlights. Two strategies work: drop the emission strength in the shader to 3 to 5 and rely on bloom to do the work, or render with the full intensity and use a stronger tonemap roll-off in the compositor. AgX with the High Contrast look handles this naturally; Filmic needs a manual highlight knee.
Real-world examples from working artists
Ian Hubert's tied-down vehicle shots use Filmic Blender with a deep contrast look and rely on bloom for the emissive turn signals — his portfolio JPGs preserve the saturation without crushing shadows because he separates the bloom pass and dials it back independently of the master grade.
Vitaly Bulgarov's mech renders almost always ship as 4K JPGs from a 16-bit intermediate, with a deliberate slight ACES tonemap roll-off on the chrome highlights. The result on ArtStation is consistently sharp without the over-bloomed look that plagues amateur sci-fi renders.
Bobby Chiu and the Imaginism Studios team export from Photoshop after a PSD compositing pass — the EXR feeds Photoshop's 32-bit canvas, the grade lives in adjustment layers, and the final JPG bake happens with File > Export > Save for Web at quality 90.
View transform comparison
| Transform | Best for | Highlight handling | Saturated reds |
|---|---|---|---|
| AgX | Portfolio hero shots, product | Soft, natural roll-off | Holds well |
| Filmic Blender | Cinematic narrative scenes | Aggressive roll-off | Desaturates at high intensity |
| ACES | VFX, cross-DCC pipelines | Industry-standard | Slight skew to orange |
| Standard / Gamma 2.2 | Quick previews only | Clips at 1.0 | Blows out fast |
| Custom OCIO LUT | Established studio look | Tunable | Whatever you tune |
Compression for the portfolio site
A 3,840 px JPG at quality 95 is roughly 2.8 to 4.5 MB depending on detail. That is fine for ArtStation but heavy for a personal portfolio built on Squarespace, Cargo, or a custom Next.js site. Run the final JPGs through the JPG compressor to drop file size 35 to 50 percent with no visible quality change at typical 1440p viewing distance. For the same site, generate a WebP fallback at the same dimensions with the JPG to WebP converter — Safari, Chrome, and Firefox have all supported WebP for years, and the file is another 25 to 35 percent smaller than the optimized JPG.
Advanced tips for portfolio-grade exports
- Render in a wider gamut than you deliver. Work in Linear Rec.2020 inside the DCC and convert to sRGB only at the final JPG bake. This keeps saturated greens and reds from clipping during compositing.
- Pre-multiply alpha on transparent renders. A character render with a black background and pre-multiplied alpha composites cleanly over the portfolio page background. Straight alpha looks halo'd.
- Use 16-bit TIFF as the grading intermediate. If you re-grade for print after the fact, the TIFF to JPG converter at quality 95 is your last-mile step.
- Render variants at the same camera and lighting. A wide hero plus three close-up details from the same scene reads as a coherent project, not a one-off lucky shot.
- Build an AVIF fallback for next-gen browsers. The JPG to AVIF converter drops file size another 15 to 25 percent over WebP at the same perceived quality.
- Mind the sRGB versus Display P3 distinction on Apple devices. If your portfolio hosts on a Mac-heavy audience, tagging Display P3 holds saturation slightly better, but the file must declare the profile to avoid orange-skin shifts in Chrome.
- Strip EXIF on final exports. A 4K JPG with intact camera metadata is a giveaway that the file came straight from Photoshop without a final optimization pass. Cleaning EXIF saves 8 to 30 KB per image.
File naming for a multi-render portfolio
Future you will thank present you for naming exports with the scene, engine, frame, and tonemap baked into the filename. A pattern like warehouse_cycles_f0240_agx_v03.jpg reads in any directory listing. Avoid spaces, avoid uppercase extensions, and keep the version number at the end so sort order matches iteration order. Use the image info tool to spot-check the embedded color profile and dimensions before uploading the final batch.
FAQ
Should I render to PNG instead of JPG for portfolio hero shots?
PNG is lossless and useful for renders with hard edges or text, but JPG at quality 95 is visually identical for photographic-style 3D and three to five times smaller. Use the PNG to JPG converter if you already rendered to PNG and need to slim the file for upload.
Why does my render look fine in Blender but washed out in Chrome?
The JPG export did not embed an sRGB profile, and Chrome is rendering it in your monitor's native gamut. Re-export with the profile embedded, or convert and re-tag with a color management tool before uploading.
Is 4K worth it for ArtStation given they downsample?
Yes. ArtStation displays the hero at 1,920 px but allows viewers to click through to a larger version. The 4K upload gives that experience without breaking the platform's compression budget.
Can I skip the EXR step and just render straight to TIFF?
You can, but you lose floating-point headroom. EXR holds values above 1.0; TIFF in 16-bit integer clips at white. For portfolio work where you might re-grade later, EXR is the safer master.
My emissive panels still clip after AgX. What now?
Drop the emissive strength in the shader and add bloom in compositing instead. Tonemaps can only do so much when the source value is 80x scene white.
What about HDR portfolio images for Apple devices?
Apple's HDR JPGs (UltraHDR / gain map) are gaining traction but are not widely supported on portfolio platforms yet. Stick with SDR sRGB JPG for cross-platform reliability and consider the JPG to HEIC converter for an Apple-Photos-friendly variant.
Do I need to deliver multiple resolutions?
For self-hosted portfolios yes — serve a 1,920 px hero, a 960 px tablet, and a 480 px mobile via picture-element srcset. For ArtStation and Behance, one 3,840 px upload covers their responsive sizing.
Final upload checklist
- EXR master archived with the .blend / .c4d / .uproject file
- Tonemapped JPG at quality 95, sRGB embedded, 3,840 px long edge
- Compressed web JPG at 1,920 px for project thumbnails
- WebP fallback generated for self-hosted portfolio
- Highlights, shadows, and emissive areas spot-checked at 100 percent crop
Edge cases: HDR portfolio, mobile-first display, and dark mode
Apple's UltraHDR JPGs and Google's gain-map JPGs are entering mainstream support. A portfolio served to an iPhone with HDR-capable display can show 1,000 nits of highlight while degrading gracefully to 100 nits on an older monitor. The catch: most portfolio platforms strip the HDR metadata during re-encoding. For the immediate future, build SDR masters and treat HDR as a bonus for self-hosted pages.
Mobile-first display matters too. ArtStation's mobile app shows hero shots at roughly 800 to 1,200 px depending on device. A render with a dense composition reads worse on mobile than a simpler one; consider building the portfolio around frames that survive aggressive downsampling. Use the aspect ratio calculator to plan a mobile-safe 4:5 crop variant for each hero alongside the 16:9 desktop crop.
Dark-mode portfolios (cargo.site, custom Next.js builds) flatter renders with heavy blacks and saturated emissives. Light-mode portfolios (most of Squarespace and Webflow templates) push you toward higher-key compositions. Pick the portfolio platform before the final grade so you know which direction to push contrast.
Going deeper: client deliverables versus portfolio masters
Portfolio JPGs and client deliverables look superficially similar but follow different rules. Portfolio masters favor a stylized look that reads as your signature; client deliverables favor neutrality so the work matches whatever brand or campaign environment it ships into. The same EXR can produce both, but only if you keep the EXR. Re-rendering for a client because you only saved the JPG is a 12-hour mistake.
For client deliverables, the export typically wants a higher pixel count (4K minimum, often 8K for print), a wider color gamut (Display P3 or Adobe RGB for print campaigns), and embedded metadata that identifies the project, version, and artist. Tools like Photoshop's File Info pane handle the metadata; the image info tool verifies it survived the JPG bake.
Long-term archival: the .blend/.c4d/.uproject question
The single biggest archival regret artists hit is throwing out the source files because the JPG looks fine. Source files unlock every future use case: re-rendering for higher res, re-grading for a new campaign, repurposing as a hero animation, NFT minting, print licensing. Source files compressed and cloud-archived cost dollars per year; re-creating a lost scene from scratch costs days.
The cleanest archive structure: project root folder, source files (.blend / .c4d / .uproject), EXR masters, intermediate TIFFs, distribution JPGs, web WebP/AVIF, and a readme.txt that documents the version, dates, and credits. Compress and back up the whole folder to two cloud services or an external drive.
If you only fix one thing in your current pipeline, fix the tonemap step. Render one of your existing EXR masters through AgX or a proper OCIO config, bake it to JPG at quality 95, and run it through the JPG compressor before posting. The difference on the ArtStation feed is immediate. For related cleanup, the image converter covers format swaps for client deliverables and the AI upscaler handles the case where a low-res client reference needs to become a print-ready hero, the aspect ratio calculator handles crop math for cross-platform delivery, and the full conversion tool index covers retargeting the same render for print, social, or a client deck.