gre / gl-react

gl-react – React library to write and compose WebGL shaders
https://gl-react-cookbook.surge.sh
MIT License
2.94k stars 163 forks source link

Bad quality camera on Android devices #412

Open Benrski opened 2 years ago

Benrski commented 2 years ago

library version

├── expo-camera@12.2.0
├── expo-gl@11.3.0
├─┬ gl-react-expo@5.2.1
│ ├── expo-gl@11.3.0 deduped
│ └── gl-react@5.2.0 deduped
├── gl-react@5.2.0
└─┬ webgltexture-loader-expo-camera@2.0.0
  └── expo-camera@12.2.0 deduped

Expected behavior

iOS (using gl-react/GLCamera.js example) IMG_5298

This example from Expo it's working fine on both Android and iOS.

Actual behavior

Android (using gl-react/GLCamera.js example) Screenshot_20220709_131549_host exp exponent

Steps to reproduce the behavior

gl-react/GLCamera.js

gre commented 2 years ago

Did you try to increase the values of the camera at
https://github.com/gre/gl-react/blob/master/examples/cookbook-rn-shared/examples/camera/GLCamera.js#L54-L55 ?

            width: 400,
            height: 533.33,

thanks

Benrski commented 2 years ago

Changing the style works correctly, thanks! I didn't think the resolution depended on the style 🤔

gre commented 2 years ago

It's probably something specific to expo-camera

Benrski commented 2 years ago

Could it be related to webgltexture-loader-expo-camera?

gre commented 2 years ago

indeed here we use createCameraTextureAsync to get a picture of the camera from the "view", then I think it's due to the internal implementation of Expo, which will simply capturing the camera view https://github.com/expo/expo/blob/168ee43f71f005baa11edf98e518593443e1807a/packages/expo-gl/ios/EXGL/EXGLObjectManager.mm#L160