小编Han*_*esh的帖子

从深度缓冲区获取真实的z值

从着色器中的深度缓冲区进行采样,返回0到1之间的值,如预期的那样.给定相机的近平面和远平面平面,如何计算此时的真实z值,即距相机的距离?

opengl graphics shader

52
推荐指数
2
解决办法
4万
查看次数

定义一个对象而不用C++调用它的构造函数

在C++中,我想将对象定义为类的成员,如下所示:

Object myObject;
Run Code Online (Sandbox Code Playgroud)

但是,这样做会尝试调用它的无参数构造函数,它不存在.但是我需要在包含类完成初始化之后调用构造函数.像这样的东西.

class Program
{
public:
   Object myObject; //Should not try to call the constructor or do any initializing
   Program()
   {
      ...

      //Now call the constructor
      myObject = Object(...);
   }

}
Run Code Online (Sandbox Code Playgroud)

c++ constructor class object

45
推荐指数
5
解决办法
3万
查看次数

列出<T>到T []而不复制

我有一大堆需要提供给OpenGL的值类型.如果这种情况尽快发生会很棒.我现在正在做的是这样的:

List<Vertex> VList = new List<Vertex>();
... //Add vertices
Vertex[] VArray;
VList.CopyTo(VArray, VList.Length);
GL.SetData(..., VArray);
Run Code Online (Sandbox Code Playgroud)

这个列表很容易10MB,因此复制速度很慢.我可以不复制地执行此操作,就像以某种方式获取指向List内部使用的数组的指针一样?

或者我必须实现自己的List类..

编辑:我忘了提到我不知道将添加到列表中的元素数量.

c# arrays list

27
推荐指数
5
解决办法
4830
查看次数

如何在matlab中检索函数参数的名称?

除了解析函数文件之外,有没有办法在matlab中获取函数的输入和输出参数的名称?

例如,给定以下函数文件:

divide.m

function [value, remain] = divide(left, right)
     value = floor(left / right);
     remain = left / right - value;
end
Run Code Online (Sandbox Code Playgroud)

从函数外部,我想得到一个输出参数数组,在这里:['value', 'remain']和输入参数类似:['left', 'right'].

在matlab中有一个简单的方法吗?Matlab通常似乎很好地支持反射.

编辑背景:

这样做的目的是在窗口中显示功能参数以供用户输入.我正在编写一种信号处理程序,对这些信号执行操作的函数存储在子文件夹中.我已经有一个列表和用户可以选择的每个函数的名称,但是某些函数需要额外的参数(例如,平滑函数可能会将窗口大小作为参数).

目前,我可以在程序将找到的子文件夹中添加一个新功能,用户可以选择它来执行操作.我缺少的是用户指定输入和输出参数,这里我遇到了障碍,因为我找不到函数的名称.

reflection matlab

19
推荐指数
2
解决办法
7287
查看次数

OpenGL顶点缓冲区混乱

有人会关心解释VertexBuffer,VertexArray,VertexBufferObjectVertexArrayObject之间的区别吗?我甚至不确定这些是否是针对不同事物的所有术语,但我已经看到它们都出现在OpenGL规范中.

我知道VertexBuffer只包含顶点而没有其他任何东西,一旦绑定,一旦我设置了顶点指针,我就可以使用DrawArrays来绘制它.我已经多次这样做了.

我正在使用我认为的VertexArray,它存储所设置的任何顶点缓冲区的状态,以及任何顶点指针.绑定VertexArray会自动绑定顶点缓冲区并设置顶点指针.我也成功地使用了这个(大部分).

但什么是VertexBufferObjectVertexArrayObject?他们更好吗?VertexArray不能给我我需要的一切吗?

opengl vertex-buffer vertexdata vertex-array

17
推荐指数
2
解决办法
3937
查看次数

多线程.NET队列问题

我的代码中有一个奇怪的错误.这是非常罕见的(可能每隔几周发生一次),但它就在那里,我不知道为什么.

我们有2个线程正在运行,1个线程获取网络消息并将它们添加到队列中,如下所示:

DataMessages.Enqueue(new DataMessage(client, msg));
Run Code Online (Sandbox Code Playgroud)

另一个线程将消息从此队列中取出并处理它们,如下所示:

while (NetworkingClient.DataMessages.Count > 0)
{
    DataMessage message = NetworkingClient.DataMessages.Dequeue();

    switch (message.messageType)
    {
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,每隔一段时间我就会在行上得到一个NullReferenceException switch (message.messageType),我可以在调试器中看到该消息为null.

将空值放入队列是不可能的(参见代码的第一位),这些是使用队列的唯一两件事.

队列是不是线程安全的,是不是我在另一个线程入队的确切时刻出列,这会导致故障?

.net c# queue multithreading

16
推荐指数
3
解决办法
2815
查看次数

给神经网络"痛苦"

我编写了一个非定向神经网络.有点像大脑,所有神经元都在同一时间更新,并且没有明确的层.

现在我想知道,疼痛是如何起作用的?我如何构建一个神经网络,以便"痛苦"信号使它想要做任何事情来摆脱所说的痛苦.

artificial-intelligence biological-neural-network neural-network

15
推荐指数
1
解决办法
1816
查看次数

在OpenGL中绑定纹理

所以我分批渲染我的场景,尝试最小化状态变化.由于我的着色器通常需要多个纹理,因此我将其中一些纹理单元同时绑定到不同的纹理单元.其中一些纹理用于多个批次,因此甚至可以保持绑定.

现在我的问题是,在批处理中重新绑定我需要的所有纹理是否很好,即使它们中的一些可能已经绑定了?或者我应该检查哪些是绑定的,只绑定新的?glBindTexture有多贵?我正在使用着色器,将未使用的纹理绑定到着色器不会对其进行采样的纹理单元是不是很糟糕,还是应该解除它们的绑定?

我主要问"如何快速",而不是"如何".

编辑:如果我提供代码会有帮助吗?

opengl graphics textures

15
推荐指数
2
解决办法
5332
查看次数

如何清除对Arrays.copyof()的这种模糊调用?

我正在Android手机上运行AIDE,并且无法编译以下的Java代码:

elements = Arrays.copyOf(elements, elements.length * 2);

elements是类型int[].我从AIDE得到的错误是

Several methods are applicable to (int[], int): 'java.util.Arrays.copyOf(int[], int)' and 'java.util.Arrays.copyOf<T>(T[], int)'

我希望编译器选择前一个选项,但事实并非如此.我该如何解决这个问题?

java android aide-ide

14
推荐指数
1
解决办法
1240
查看次数

Java和C#中的多维数组

在C#中,有两种方法可以创建多维数组.

int[,] array1 = new int[32,32];

int[][] array2 = new int[32][];
for(int i=0;i<32;i++) array2[i] = new int[32];
Run Code Online (Sandbox Code Playgroud)

我知道第一种方法在内部创建一维数组,第二种方法创建一个数组数组(访问速度较慢).

但是在Java中,没有[,]这样的东西,我看到多维数组声明如下:

int[][] array3 = new int[32][32];
Run Code Online (Sandbox Code Playgroud)

由于这种语法在C#中是非法的,而Java没有int[,],我想知道这是否等效array1?或者它仍然是一个数组数组?

c# java arrays jagged-arrays multidimensional-array

12
推荐指数
3
解决办法
6781
查看次数