小编Mic*_*rer的帖子

如何根据Blender中图像平面的距离渲染深度值

我想在Blender(v2.65a,使用Cycles引擎)中渲染场景的深度图,该场景使用到图像平面(或与其平行的任何平面,例如yz平面)的距离作为深度值.

可以使用复合节点渲染简单的深度图,如文档中所述.这里的问题是,使用的z值是基于到相机的距离,而不是图像平面.这意味着该平行线到图像平面将具有变化取决于它们所呈现的图像中的位置z值,如在这个例子可以看出(渲染描绘了立方体的前部,值已经归一化):

使用相机距离的深度图

我想要一个深度贴图,它对于平行于图像平面的平面上的点保持相同的深度(不改变整体投影,因为深度贴图仍然必须与正常渲染一致).

这可以通过使用,根据从视线方向的角度修正值的脚本后处理当前深度图来实现,但我不知道是否有一种方式来获得正确的信息的权利了渲染过程.

那么有没有办法使用复合节点(或类似的Blender特征)根据到图像平面的距离渲染深度图?

blender

26
推荐指数
0
解决办法
1839
查看次数

Eclipse有缩进指南吗?

最近,我使用Eclipse编辑我的python代码.但缺乏缩进指南,我觉得不太好.那么如何为Eclipse添加自动缩进指南呢?有某些插件吗?更重要的是,我尝试过EditBox.但是,你知道,在某些主题下这不是很自然...............

python eclipse-plugin pydev

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

为什么openCV的convertto功能不起作用?

我有一个图像,有4个通道,4 * UINT8格式.

我试图将其转换为3通道浮点数,我正在使用此代码:

images.convertTo(images,CV_32FC3,1/255.0);
Run Code Online (Sandbox Code Playgroud)

转换后,图像采用浮动格式,但仍有4个通道.如何摆脱OpenCV中的第4个(alpha)频道?

c++ opencv alpha-transparency

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

使用pip用自定义派生替换依赖项

我正在构建一个应用程序,该应用程序使用photologue了具有photologue依赖关系的其他软件包(例如cmsplugin-photologue)。但是,我需要使用photologue托管在github上的修改版本。所有这些都将部署在Heroku上,这意味着依赖项的安装仅通过requirements.txt文件即可完成。

原则上,这很容易完成:我可以按照此处所述将存储库添加到需求文件中,然后将其安装。问题在于原件photologue也已安装,并且最终被使用了。

因此,通常的问题是:使用pip,如何用自己的应用程序版本替换依赖于多个应用程序的应用程序?

python git pip heroku requirements.txt

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

用于对象拾取的 Alpha 与整数纹理混合

问题描述

你好!在我们的 WebGL 应用程序中,我们绘制了许多(甚至数十万)个形状,我们想发现当前鼠标下方的形状。我正在寻找一种有效的方法。

细节

这些形状是用Signed Distance Functions定义的。每个形状都是通过将预定义的 sdf 片段着色器应用于方形多边形(2 个三角形)来绘制的。每个形状都uint在 Rust 端分配了一个唯一的 ID ( )(我们在这里使用 WASM)。这个想法是将场景渲染两次(在 WebGL 1.0 中)或一次到多个渲染目标(在 WebGL 2.0 中),其中一个目标是编码为颜色的 ID。然后我们可以使用readPixels查询颜色并获取鼠标下形状的ID。不幸的是,我们尝试的每个解决方案都有一些缺点。

要求

  • 我们需要为每个形状编码 2 个整数(一个告诉我们它是什么形状,比如它是一个按钮,或者可能是一个滑块),第二个告诉我们它是哪个对象实例(例如第 5 个滑块)。
  • 我们将在舞台上有很多形状(和实例),因此对于每个 int,我们至少需要 24 位,最好是 32 位精度。

到目前为止他所尝试的

  • 将 ID 信息渲染为RGBA32UI纹理类型。在这个解决方案中,我们每个通道使用 32 位,因此我们可以使用 2 个通道来表示我们的 ID。不幸的是,混合仅适用于 RGBA 模式,并且仅当颜色缓冲区具有定点或浮点格式时才适用。我们需要某种形式的混合,因为在绘制形状(如圆形)时,某些部分需要透明。在 ID 颜色输出的情况下,我们的 alpha 始终为 0 或 1。
  • 渲染ID信息RGBA的质地和转换uintfloat通过使用GLSL intBitsToFloat然后回floatuint在生锈。不幸的是,这在 GLSL 330 中可用,而我们仅限于 WebGL 中的 …

shader webgl rust webgl2

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

为什么我用 matplotlib.imshow 绘制的 matplotlib 2D 直方图/热图与我的轴不匹配?

我正在尝试为以下数据创建直方图

x = [2, 3, 4, 5]
y = [1, 1, 1, 1]
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码,例如,在关于如何在 matplotlib 中生成二维直方图的这个问题的答案的旧版本中进行了描述。

import matplotlib.pyplot as plt
import numpy as np

bins = np.arange(-0.5, 5.5, 1.0), np.arange(-0.5, 5.5, 1.0)
heatmap, xedges, yedges = np.histogram2d(x, y, bins=bins)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

plt.clf()
plt.imshow(heatmap,
           extent=extent,
           interpolation='nearest',
           cmap=plt.get_cmap('viridis'), # use nicer color map
          )
plt.colorbar()

plt.xlabel('x')
plt.ylabel('y')
Run Code Online (Sandbox Code Playgroud)

然而,这产生的情节似乎以某种方式旋转。

我期待这个:

在此处输入图片说明

但我得到了

绘图显示以意外、错误的方式绘制的数据

显然,这与我的输入数据不匹配。此图中突出显示的坐标是(1, 0), (1, 1), (1, 2), (1, 3)

到底是怎么回事?

python plot matplotlib

3
推荐指数
1
解决办法
1256
查看次数

如何通过FFI公开编译时生成的静态C字符串?

我正在尝试将版本号嵌入库中.理想情况下,这应该是一个可以读取的静态C字符串,并且不需要任何额外的分配来读取版本号.

在Rust方面,我vergen用来生成这样的版本控制信息:

pub static VERSION: &str = env!("VERGEN_SEMVER");
Run Code Online (Sandbox Code Playgroud)

我想最终得到类似的东西

#[no_mangle]
pub static VERSION_C: *const u8 = ... ;
Run Code Online (Sandbox Code Playgroud)

似乎有一种方法可以使用字符串文字来实现这一点,但我还没有找到一种方法来使用编译时字符串.创建一个新的CString似乎超出了静态变量的当前功能,并且往往以错误E0015结束.

只要它没有分配新的内存,像这样返回指针的函数是可以接受的.

#[no_mangle]
pub extern "C" fn get_version() -> *const u8 {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

变量的最终类型(或函数的返回类型)不必基于u8,但应该是可翻译的cbindgen.如果其他一些FFI类型更合适,使用它是完全正常的.

ffi rust

3
推荐指数
1
解决办法
127
查看次数