Articles of renderscript

将SurfaceTexture与RenderScript结合使用

我想在android上的GPU上进行相机image processing。 在我目前的设置中,我使用SurfaceTexture从相机图像流中捕获帧作为OpenGL ES纹理。 这是在我的着色器中访问相机流的有效方法。 ( http://developer.android.com/reference/android/graphics/Sur​​faceTexture.html ) 现在我想开始使用新的RenderScript API而不是直接使用OenGL ES。 ( http://developer.android.com/guide/topics/renderscript/index.html ) 但是要创建SurfaceTexture,我需要将openGl纹理ID传递给构造函数。 遗憾的是,纹理ID不可用(RenderScript使用Allocation类加载纹理,不会显示纹理ID)。 所以我在使用RenderScript时无法创建SurfaceTexture。 我已经阅读了关于renderscript的所有文档(它仍然非常稀疏)并查看了示例,但它们没有关于该主题的信息。 所以我的问题是:是否可以将SurfaceTexture与RenderScript结合使用,还是有其他一些在RenderScript Graphics脚本中使用实时相机流的有效方法?

将Collada文件转换为a3d(Android3d)对象

我正在研究Renderscriptfunction,并坚持使用A3D(Android 3d)文件格式。 我无法find一个简单的方法来将Collada文件转换为A3D格式来存储我的搅拌机模型。 我想知道你们有没有想法,我可以试试? 有没有人有一个工作代码示例,以便可以看到我做错了什么? 更多信息: http : //developer.android.com/reference/android/renderscript/FileA3D.html 编辑:不要被误认为是Asci3d文件的延伸(也是* .a3d)

使用由Camera预览填充的SurfaceTexture作为在Jelly Bean中的Renderscriptinput分配

在Jelly Bean中,是否可以从由相机预览填充的SurfaceTexture中创buildRenderscript分配? 我正在从Android源代码树中构build我的应用程序,所以我可以使用@Hide API(如Allocation.setSurfaceTexture())。 不过,我想避免使用RS Graphics弃用的API。 这里的类似问题没有得到充分的回答,也不是JB特有的。 尝试下面的代码时遇到以下问题: 进入Renderscript的数据总是为零 为了让onFrameAvailablecallback被重复调用,我必须updateTexImage(),因为当我调用Allocation.ioReceive()时,它不会在第一次之后被callback,并且在logcat中有一个“无效的EGLDisplay”。 然而,我认为ioReceive()是要走的路 – 它在内部也updateTexImage()。 支持的分配types包括RGBA8888,而不是NV21(这是相机预览格式),RS代码如何能够以这种方式对数据进行格式化? (我知道我正在使用的设备确实支持请求的VGA分辨率)。 public class SampleRSCPCActivity extends Activity implements SurfaceTexture.OnFrameAvailableListener { final static int DO_KERNEL = 0; private static final String TAG="SAMPLERSCP"; private static Camera mCamera; private Camera.Parameters mParams; private int mFrameWidth, mFrameHeight; private static SurfaceTexture mST; private RenderScript mRS; private Allocation mInAllocation; […]

Android的JNI没有包装在APK中

我正在使用Android Renderscript本机库,但导出时, *.so文件未包含在我的APK 。 当我在Eclipse运行应用程序时,该应用程序完美工作,但这显然是APK文件的一个包问题: Caused by: android.support.v8.renderscript.r: Error loading RS jni library: java.lang.UnsatisfiedLinkError: unknown failure 我该怎么做才能在APK添加*.so文件?

无法在Android GB 2.3.5上运行Renderscript HelloCompute示例

我尝试在Android 2.3.5上运行Renderscript示例HelloCompute。 (我使用v22.2.1-833290和SDK 22.2.1我得到了Logcat的错误信息: W/dalvikvm( 4928): VFY: unable to resolve static method 412: Landroid/renderscript /RenderScript;.create (Landroid/content/Context;)Landroid/renderscript/RenderScript; W/dalvikvm( 4928): threadid=1: thread exiting with uncaught exception (group=0x4002d560) E/AndroidRuntime( 4928): FATAL EXCEPTION: main E/AndroidRuntime( 4928): java.lang.NoSuchMethodError: android.renderscript.RenderScript.create 为了制作apk包,我添加了Android支持库v13构build步骤。 我猜这个renderscript库没有被正确地添加到构build步骤中。 对不起,我找不到Android支持库v8如下http://android-developers.blogspot.com/2013/09/renderscript-in-android-support-library.html 如何克服这个问题?

如何使用Allocations将数组值传递给Android RenderScript

我一直在使用RenderScript,目的是创build一个程序员可以轻松使用的API,类似于Microsoft Accelerator的工作方式。 现在我遇到了麻烦,因为我想将值传递给RenderScript图层,并且以尽可能最有效的方式运行所有东西,这是迄今为止我的源代码的摘录: int[] A = new int[10]; int[] B = new int[10]; for (int i = 0; i < 10; i++) { A[i] = 2; B[i] = i; } intAdd(A, B); 这只是创build两个基本的数组,并用值填充它们,并调用将它们发送到RenderScript的函数。 private void intAdd(int[] A, int[] B) { RenderScript rs = RenderScript.create(this); ScriptC_rsintadd intaddscript = new ScriptC_rsintadd(rs, getResources(), R.raw.rsintadd); mScript = intaddscript; for(int […]

我们应该什么时候(真的)使用RenderScript?

我似乎无法find何时使用RenderScript的明确答案? 文档说,我们应该使用它来做一些计算或处理图像。 这不是很清楚,特别是与图像的部分。 有人可以给我实用的build议何时使用它? 例如, 他们在说什么计算? 什么时候我们应该使用RenderScript处理Bitmap当有其他的方法(或工厂),我们可以在这样的场合成功使用? RenderScript仅限于编码游戏时的使用情况吗?

如何使用ScriptIntrinsicYuvToRGB(将byte yuv转换为byte rgba)

我有byte[] yuvByteArray (从Camera.PreviewCallback.onPreviewFrame方法捕获540×360图像,并转储到assets/yuv.bin文件)。 我想使用下面的代码(基于LivePreview android示例)将byte[] yuv转换为byte[] rgba数组。 但是我在forEach之后收到了outBytes rgba数组,填充为零,并将分配拷贝到outBytes。 我的代码有什么问题? package hellorender; import android.app.Activity; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v8.renderscript.Allocation; import android.support.v8.renderscript.Element; import android.support.v8.renderscript.RenderScript; import android.support.v8.renderscript.ScriptIntrinsicYuvToRGB; import android.support.v8.renderscript.Type; import android.widget.ImageView; import hellorender.R; import java.io.IOException; import java.io.InputStream; public class HelloRenderActivity extends Activity { public static final int W = 540; public static final int […]

为什么不rsDebug工作?

我已经在Android的RenderScript示例“喷泉”中插入了一个rsDebug方法,但是我没有收到logcat的消息。 这里有一个代码片段来演示我所尝试的: int root() { float dt = min(rsGetDt(), 0.1f); rsDebug("dt", dt); … }

在Renderscript计算中将数组传递给rsForEach

我发现在RenderScript中缺乏良好的文档,对于我所知道的,RS中的每个东西都是为分配中的每个单独项目执行root()。 我试图为Renderscript做一个image processing库,作为一个起点,我达到了这个好的答案 。 但问题是,模糊操作是在每个像素和每个像素需要另一个循环(n模糊宽度)的计算。 虽然运行在多核上,但仍然有点太慢。 我试图修改它,以允许(两遍)框filter,但这需要工作在一个单一的行或列而不是单元格。 那么,有没有办法要求foreach发送一个数组到root()?