问题标签 [android-renderscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1180 浏览

java - 如何从android中的根视图中删除模糊

我正在使用这个类来模糊我活动中根视图的背景:

在我的活动中,我有以下内容:

使用这种技术,我会根据模糊半径模糊我的活动的根视图。我该如何做相反的事情?我试图将 BLUR_RADIUS 设置为 0.1f,但它仍然不起作用。

请提供一些关于如何实现这一目标的解释。谢谢!

0 投票
1 回答
423 浏览

renderscript - 位图裁剪的渲染脚本

看起来 Android SDK 的 BitmapRegionDecoder 使用 Skia 来解码指定位图的一部分。在引擎盖下,它使用了适当的代码(jpeg、png 等)。我正在寻找使用 Renderscript 优化它的方法。

是否可以定义一个 Renderscript 内核函数来忽略输入分配中的某些数据并将其余数据保存在输出分配中?我是 Renderscript 的新手,大多数内核函数都倾向于处理整个输入数据集。

0 投票
0 回答
356 浏览

android - Renderscript:如何分配 uchar4 数组

在我的 Android 代码中,我保留了一组我想在我的渲染脚本代码中使用的颜色,如下所示:

所以基本上,如果像素是阵列中的一种颜色,则将其变为红色。问题是我正在努力分配像素数组。在 RS 我有:

在java中我有:

我读过你不能有超过 2 个分配。所以,我猜这是我的问题。所以,我想尝试以 uchar4* 的形式读取颜色,但我找不到如何执行此操作的示例。

0 投票
0 回答
117 浏览

android - Renderscript 错误地对我的图像进行采样

我有一个存在多种颜色的图像(我们称之为蒙版)。我还有一个“选定”颜色的列表。我的渲染脚本制作了一个新图像,用作叠加层。如果遮罩和选定列表中都存在某种颜色,则该区域的叠加层应为红色,否则为绿色。

这些是图像: 在此处输入图像描述

在此处输入图像描述

请注意,生成的图像,上面有红色蒙版,中间有一条绿线。我确保在创建第一张图像时关闭抗锯齿功能,因此“蒙版”中没有意外的颜色。但是,由于某种原因,它在我的渲染脚本中不被视为一种或另一种颜色。这是代码:

任何帮助将不胜感激。我还是新手,我永远被困住了!

0 投票
1 回答
117 浏览

java - 如何将此代码从 java 移动到 Renderscript

有人可以为我提供一些关于如何将此代码移植到渲染脚本以获得更好性能的指南。

0 投票
0 回答
427 浏览

android - 使用 RenderScript 创建 HSV 直方图

我必须在 Android 中使用 RenderScript 从 ARGB 数组创建 HSV 直方图。这是我第一次使用 RenderScript,我不确定我是否犯了错误,因为性能不是很好。从 1920x1080 位图创建 HSV 直方图需要 100 到 150 毫秒。

渲染脚本代码:

科特林代码:

我希望你能帮助我提高性能。您认为 HSV 直方图的创建可以在 20 毫秒左右完成吗?这是现实的吗?

0 投票
0 回答
131 浏览

android - 硬件信号处理器API?(用于额外的 Android 处理能力)

我知道移动 SoC 具有非常强大的 ISP 硬件(用于相机)和 DSP(用于音频?)。

有没有办法以编程方式访问它,用于您自己的计算(例如,输入数据不是来自相机)?这种事情在 GPU 上很常见。例如, OpenGL ES 3.1对它有一些支持;还有openCL。ISP / DSP有什么等价物吗?如果是这样,是否值得,或者仅对非常特定的情况有用?

PS:我好像想起了一个Android API,它本应统一所有硬件处理能力(CPU、GPU、DSP、ISP),但它没有起飞。编辑我认为那是RenderScript,用于“异构计算”(尽管不包括硬件信号处理器)。

0 投票
0 回答
109 浏览

performance - 预期的渲染脚本 rsSample() 性能是多少?

rsSample() 似乎旨在从多个细节级别的 mipmaped 纹理中进行采样以避免混叠。鱼眼示例将是一个很好的用例。

实现只是从底层 mipmap 中采样 8 个像素,并对它们进行线性混合。

使用这个简单的内核,我似乎只能在 Google Pixel 上获得 15 Mpixels/second:

考虑到所有合成的图形都可能使用 mipmap,并且即使以 60fps 的速度合成一个纹理也需要 120Mpixels/sec,我做错了什么?

0 投票
1 回答
276 浏览

android - RenderScript 错误地操作内核的输出

我正在尝试使用 Android 的 RenderScript 在图像后面渲染一个半透明的圆圈,但是当从 RenderScript 内核返回一个值时,事情变得非常错误。

这是我的内核:

现在,该rsPackColorTo8888()函数采用 4 个浮点数,其值介于 0.0 和 1.0 之间。然后通过计算每个浮点值的 255 次来找到生成的 ARGB 颜色。所以给定的浮点数对应于颜色 R = 0.686 * 255 = 175, G = 0.686 * 255 = 175, B = 0.686 * 255 = 175 和 A = 0.561 * 255 = 143。

rsPackColorTo8888()函数本身可以正常工作,但是当uchar4从内核返回找到的值时,会发生一些非常奇怪的事情。R、G 和 B 值分别更改为 Red * Alpha = 56、Green * Alpha = 56 和 Blue * Alpha = 56,其中 Alpha 为 0.561。这意味着 R、G 和 B 的任何值都不能大于 A = 0.561 * 255。

手动设置输出,而不是使用rsPackColorTo8888()产生完全相同的行为。我的意思是下面的代码产生完全相同的结果,这反过来证明这rsPackColorTo8888()不是问题:

这是调用脚本的 Java 代码:

当 alpha 设置为 255(或 1.0 作为浮点数)时,返回的颜色值(在我的应用程序的 Java 代码中)是正确的。

我做错了什么,还是这真的是 RenderScript 实现中的某个错误?

注意:我已经在 Oneplus 3T (Android 7.1.1)、Nexus 5 (Android 7.1.2)、Android 模拟器版本 7.1.2 和 6.0 上检查并验证了此行为

0 投票
1 回答
224 浏览

android - RenderScript:不匹配函数 rsGetElementAt_uchar4

我写了很短的 RS,但是在 gradle 同步之后 Android Studio 给了我错误

错误:(8, 34) 错误:没有匹配的函数调用 'rsGetElementAt_uchar4'

脚本:

在 build.gradle 中:

相同的代码,但使用 API 23 工作: