Comments (2)
This is the intended behavior.
The target aspect ratio is always preserved and depends on the format used. For example, throughout skylibs, the latlong
representation is always 2:1, while skylatlong
is 4:1. This is to ensure pixels cover mostly the same angle in both horizontal and vertical axes.
If the aspect ratio were not preserved, the result would be an anamorphic image. For example, in your case (latlong 256x256 panorama), pixels would cover ~1.4° x 0.7°. This would break downstream functionalities such as solid angle computation, and would not fit the definition we use of a latlong
format. In addition, this library was built with appearance modeling in mind, for which anamorphic panoramas would produce an undesirable anisotropic blur (one axis has more frequencies than the other). We felt like either breaking downstream functionalities, changing the format on-the-fly, or applying anisotropic blur would all surprise the user and lead to hidden bugs in their code.
I know however that other fields (such as geophysics and their spherical harmonic libraries) are known to use the latlong
format with a 1:1 aspect ratio, so it's a matter of convention. Let me know if you have a specific use case in mind, we are open to providing the functionality if there is a need for it.
from skylibs.
Thank you for your answer! It clarifies things!
from skylibs.
Related Issues (12)
- [hdrio] Add support for raw files HOT 1
- Converting to skylatlong upsamples x2 the environment map HOT 1
- Fix .hdr load/save
- envmap function downscaleEnvmap(...) produces artifact HOT 2
- Add antialiasing option when downsampling using `envmap.resize()`.
- Unintented universal offset?
- Non-uniform functionality for cube projections
- UV pixels missmatched with normalized uv space
- Depricated function names
- remove print HOT 1
- Wrong description
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from skylibs.