aframe-react icon indicating copy to clipboard operation
aframe-react copied to clipboard

Embedding scene in react application does not work

Open tgeis02 opened this issue 5 years ago • 2 comments

Hey guys,

I am having trouble getting a simple aframe scene into my react application. I simply want to depict .gltf files in my app to preview them and click on Full Screen to walk around in it. I used a simple example from aframe-react to insert a basic scene:

<Scene embedded={true}>
        <Entity geometry={{primitive: 'box'}} material={{color: 'red'}} position={{x: 0, y: 0, z: -5}}/>
        <Entity particle-system={{preset: 'snow'}}/>
        <Entity light={{type: 'point'}}/>
        <Entity gltf-model={{src: 'virtualcity.gltf'}}/>
        <Entity text={{value: 'Hello, WebVR!'}}/>
</Scene>

(The gltf-model part is pointing to a file I do not own. I can comment this part out and it still works.) Without the embedded tag, I see the Scene on my page. It is in front of the other elements and I can only click the scene to interact with. That is why I want to embed it in a smaller window. But as soon as I include the embedded tag, the scene is not displaying anymore and I get some errors which I can't solve:

THREE.WebGLShader: Shader couldn't compile.
THREE.WebGLProgram: shader error:  0 35715 false gl.getProgramInfoLog
WebGL: INVALID_OPERATION: useProgram: program not valid
THREE.WebGLRenderer: Context Lost.
The development server has disconnected.
Refresh the page if necessary.

Can someone help with this? Maybe has a different idea to get a preview of a scene? Like I mentioned before, I want to depict .gltf files instead of plain code.

Thank you!

tgeis02 avatar May 15 '19 15:05 tgeis02

having the same issue

UltimateForm avatar May 22 '19 14:05 UltimateForm

Hi,

This is a pretty old issue but I came across a solution. The problem is that when the scene is embedded, it uses the height from the parent component. But if this height is a div with a percentage for example, it will not get a proper set height and will set its own height to zero, which explains that you can't see it.

Setting a parent div with a height and width in px will display the scene.

Hope it fixes your problem

antoninklopp avatar Oct 02 '19 14:10 antoninklopp