bevyengine / bevyengine/bevy

Better Normal Map Mipping?

Open
#19,834 0 comments 0 reactions 0 assignees View on GitHub
A-Rendering C-Feature
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## What problem does this solve or what need does it fill?

![Image](https://github.com/user-attachments/assets/43cb47ec-6d1c-476a-8605-d04854933f2a)

With standard texture mipping normals data is lost (obviously) discussed here [video, time: 36:40 ](https://www.gdcvault.com/play/1021771/Advanced-VR), so "rough" surface becomes smooth. With better texture filtering and sampling we can achieve more consistent and realistic material representation.

"Our roughness maps stores the “roughness” of a surface, or a cone (more specifically a lobe) in which direction the light can reflect at a micro scale. So when our normal information gets lost during downsampling – why not make it part of that microscale?" [[blog](https://kosmonautblog.wordpress.com/2018/09/17/roughness-mip-maps-based-on-normal-maps/)]

## What solution would you like?

[Roughness mip maps based on normal maps?](https://kosmonautblog.wordpress.com/2018/09/17/roughness-mip-maps-based-on-normal-maps/)
https://www.cs.columbia.edu/cg/normalmap/normalmap.pdf
https://developer.download.nvidia.com/whitepapers/2006/Mipmapping_Normal_Maps.pdf
https://advances.realtimerendering.com/s2018/MaterialAdvancesInWWII.pdf (page 11)

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points; start by reviewing the linked normal-map and roughness-mipmap papers and locating Bevy's material texture mipmapping path. Done would require an agreed implementation of normal-aware filtering or sampling and a way to validate the resulting material representation, neither of which the issue specifies.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.