小编pal*_*one的帖子

Android插件中的SurfaceTexture在Unity中不起作用

我无法将纹理绑定到a SurfaceTexture以在Unity中显示.

更新4:基于更新1中的管道(表面 - >外部纹理通过表面纹理 - > fbo - >纹理2d)我知道SurfaceTexture没有正确地将其表面转换为纹理.我可以通过pixelcopy从其表面获得正确的绘制图片,我可以确认我的FBO绘图到texture2d管道使用一些测试颜色.所以问题是,为什么SurfaceTexture不能将其表面转换为纹理?

Texture在Java中生成一个并将其指针传递回Unity:

public void initGLTexture()
{
    Log.d("Unity", "initGLTexture");
    int textures[] = new int[1];
    GLES20.glGenTextures(1, textures, 0);
    mTextureId = textures[0];

    GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureId);
    GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
    GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
    GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
}
Run Code Online (Sandbox Code Playgroud)

SurfaceTexture从id(在Java中)创建一个:

mSurfaceTexture = new SurfaceTexture(mTextureId);
mSurfaceTexture.setDefaultBufferSize(512, 512);
Run Code Online (Sandbox Code Playgroud)

我使用第三方库GeckoView渲染到SurfaceTexture的Surface上.我从Unity调用以下方法OnRenderObject()来保持所有GL渲染在同一个线程上:

mSurfaceTexture.updateTexImage();
Run Code Online (Sandbox Code Playgroud)

我知道上面的代码可以正确地绘制到表面上.

我在Unity中调用以下内容来加载纹理:

_imageTexture2D = Texture2D.CreateExternalTexture(
        512,512,TextureFormat.RGBA32,false,true,(IntPtr) mTextureId);
_rawImage.texture = _imageTexture2D;
Run Code Online (Sandbox Code Playgroud)

为什么RawImage应用纹理只显示这个看起来精灵的东西,它应该是一个网页?

质地

更新1:所以我一直在研究以下假设:使用Gecko绘制到Surface,并使用SurfaceTexture将此表面渲染为a GL_TEXTURE_EXTERNAL_OES …

android opengl-es unity-game-engine textureview android-unity-plugin

5
推荐指数
1
解决办法
816
查看次数

以编程方式控制 Oculus Quest 相机直通模式

我在他们的文档中没有看到这个。有谁知道(或有 ETA)我们是否可以以编程方式打开/关闭直通相机模式?

unity-game-engine oculus oculusgo

5
推荐指数
1
解决办法
377
查看次数

生成与 IPFS-Desktop CID 匹配的 CID 的无节点方法

我想在 javascript 中为文件生成 CID(内容标识符),而无需访问 IPFS 节点或互联网。我尝试使用js-multihashing-async首先对文件进行散列,然后使用js-cid从散列生成 CID,但是我得到的 CID 与将文件添加到ipfs-desktop 不同。看起来问题出在 IPFS 节点数据块上,而 CID 用于链接文件块的 DAG。我已经尝试过这个库,但它不会产生与 ipfs-desktop 为同一个文件所做的相同的 CID。这个问题与我的问题基本相同,但没有一个答案给出与 ipfs-desktop-generated CID 匹配的 CID。

javascript sha256 ipfs

2
推荐指数
1
解决办法
1148
查看次数