小编M-V*_*M-V的帖子

在C++/STL中是否有一个与Python range()相当的紧凑型

如何使用C++/STL执行以下等效操作?我想填充std::vector一系列值[min,max].

# Python
>>> x = range(0, 10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

我想我可以使用std::generate_n并提供一个函子来生成序列,但我想知道是否有更简洁的方法使用STL这样做?

c++ python

53
推荐指数
4
解决办法
3万
查看次数

WebGL - 有替代方法在HTML中嵌入着色器吗?

在WebGL中使用GLSL着色器的流行方式似乎是将它们嵌入到主html文件中.顶点和片段着色器嵌入在以下标记中:

<script id="shader-fs" type="x-shader/x-fragment">
Run Code Online (Sandbox Code Playgroud)

这与我在Mozilla Developer Network页面中的WebGL示例中看到的相同.

这适用于简单的应用程序,但是当你有一个带有许多着色器的复杂应用程序时,html文件会变得混乱.(我一直在编辑错误的着色器!)另外,如果你想重复使用着色器,这个方案很不方便.

所以我考虑将这些着色器放在一个单独的XML文件中,并使用XMLHttpRequest()加载它们.然后我看到其他人有同样的想法:

http://webreflection.blogspot.com/2010/09/fragment-and-vertex-shaders-my-way-to.html

我喜欢使用.c文件的建议,因为这为GLSL提供了语法高亮和其他编辑器便利.

但是上述方法的问题是(据我所知)XMLHttpRequest()在开发和测试WebGL应用程序时无法加载本地.c文件 - 即在客户端.但是在此过程中继续将其上传到服务器是很麻烦的.

因此,如果我想将着色器保留在html文件之外,那么将它们作为字符串嵌入代码中是唯一的选择吗?但这会使编写和调试变得困难......

我很感激有关在WebGL应用程序中管理多个GLSL着色器的任何建议.

问候

编辑(2011年5月5日)

由于我使用Mac进行开发,我决定启用Apache服务器,并将我的webgl代码放在http:// localhost/~username /下.这避免了在开发期间禁用文件:协议的问题.现在javascript文件加载代码在本地工作,因为使用了http:而不是file:.我以为我会把它放在这里以防万一有人发现它有用.

glsl webgl

32
推荐指数
5
解决办法
2万
查看次数

在Mathematica中实现四叉树

我在Mathematica中实现了一个四叉树.我不熟悉像Mathematica这样的函数式编程语言,我想知道我是否可以通过更好地使用模式来改进它或使其更紧凑.

(我知道我可以通过修剪未使用的节点来优化树,并且可能有更好的数据结构,如用于空间分解的kd树.)

此外,每次添加新点时,我仍然不满意复制整个树/表达式的想法.但我的理解是,对整个表达式进行操作而不修改部分是函数式编程方式.我对这方面的任何澄清表示感谢.

MV

代码

ClearAll[qtMakeNode, qtInsert, insideBox, qtDraw, splitBox, isLeaf, qtbb, qtpt];

(* create a quadtree node *)
qtMakeNode[{{xmin_,ymin_}, {xmax_, ymax_}}] := 
{{}, {}, {}, {}, qtbb[{xmin, ymin}, {xmax, ymax}], {}}

(* is pt inside box? *)
insideBox[pt_, bb_] := If[(pt[[1]] <= bb[[2, 1]]) && (pt[[1]] >= bb[[1, 1]]) &&
  (pt[[2]] <= bb[[2, 2]]) && (pt[[2]] >= bb[[1, 2]]),
  True, False]

(* split bounding box into 4 children *)
splitBox[{{xmin_,ymin_}, {xmax_, ymax_}}] := {
 {{xmin, (ymin+ymax)/2}, {(xmin+xmax)/2, …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica quadtree

30
推荐指数
2
解决办法
3370
查看次数

在iOS中无法使用两种纹理

在我的iOS应用程序(针对iPad)中,我想使用非幂(NPT)纹理.我的GL_VERSION查询返回"OpenGL ES 2.0 APPLE".根据规范,它应该支持NPT纹理,但是一个简单的测试表明我需要在纹理显示之前将纹理大小调整为2 ^ N.

Apple不支持完整的ES 2.0规范吗?我在哪里可以找到不支持的文档?

我使用的是Xcode 4.3.2和iOS 5.1.

编辑:

仔细研究ES 2.0.25规范(第3.8.2节),可以发现NPOT可以满足几个条件.基本上如果我使用下面的设置,我可以加载NPOT纹理:

// use linear filetring
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
// clamp to edge
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
Run Code Online (Sandbox Code Playgroud)

我应该关闭它还是回答我自己的问题?

opengl-es ios

28
推荐指数
1
解决办法
8042
查看次数

PyOpenGL - 将转换矩阵传递到着色器

我无法将投影和模型视图矩阵从我的PyOpenGL代码传递到GLSL着色器中.我的理解是OpenGL矩阵是列专业,但是当我传递投影和模型视图矩阵时,我看不到任何东西.我尝试了矩阵的转置,它适用于模型视图矩阵,但投影矩阵无论如何都不起作用.这是代码:

import OpenGL
from OpenGL.GL import *
from OpenGL.GL.shaders import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
from OpenGL.GLUT.freeglut import *
from OpenGL.arrays import vbo
import numpy, math, sys 

strVS = """
attribute vec3 aVert;
uniform mat4 uMVMatrix;
uniform mat4 uPMatrix;
uniform vec4 uColor;
varying vec4 vCol;

void main() {
  // option #1 - fails
  gl_Position = uPMatrix * uMVMatrix * vec4(aVert, 1.0); 
  // option #2 - works
  gl_Position = vec4(aVert, 1.0); 
  // set color
  vCol = vec4(uColor.rgb, …

python opengl

23
推荐指数
0
解决办法
4848
查看次数

如何将.dae文件加载到iOS SceneKit中的SCNNode中?

我无法理解.dae文件中的几何应该如何加载到iOS SceneKit场景图中.

我知道你可以.dae直接将文件加载到SCNScene中:

// create a new scene
let scene = SCNScene("test.scnassets/test.dae")
Run Code Online (Sandbox Code Playgroud)

我也知道你可以创建一个空的SCNScene并将内置的3D对象作为子节点添加到其中:

let scene = SCNScene()
var sphereNode = SCNNode()
sphereNode.geometry = SCNSphere(radius: 1.0)
scene.rootNode.addChildNode(sphereNode)
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,您可以将.dae文件加载到SCNNode而不是使用内置对象吗?或者是否.dae需要首先将所有文件加载到SCNScene中?

如果后者为真,那么如何将SCNNode对象放在SCNScene下的场景图层次结构中的正确位置?编辑#1:

这对我来说很有用,这是@FlippinFun建议的修改版本.

let url = NSBundle.mainBundle().URLForResource("test.scnassets/test", withExtension: "dae")
let source = SCNSceneSource(URL: url, options: nil)
let block = source.entryWithIdentifier("ID10", withClass: SCNGeometry.self) as SCNGeometry
scene.rootNode.addChildNode(SCNNode(geometry: block))
Run Code Online (Sandbox Code Playgroud)

但也许有更好的方法?以上涉及从.dae树手动加载每个标识符.在我的文件中,有一个节点"SketchUp",子标识符为"ID2"和"ID10".此方法不允许您加载根"SketchUp".(我收到运行时错误.)

collada ios scenekit swift

20
推荐指数
3
解决办法
2万
查看次数

Android手机和PC之间的文件共享

我是Android SDK的新手.有没有办法从我的Android应用程序共享文件,以便其他计算机可以使用WiFi访问它?对SMB这样的东西有支持吗?(手机上的Android版本是1.6)谢谢.

android

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

如何从OS X上的shell脚本运行Clozure CL(Lisp)?

我尝试了以下方法:

$ cat args.sh
\#! /Applications/ccl/dx86cl64
(format t "~&~S~&" *args*)

$ ./args.sh 
Run Code Online (Sandbox Code Playgroud)

无法加载lisp堆映像 ./args.sh

我可以直接运行lisp罚款:

$ /Applications/ccl/dx86cl64
Welcome to Clozure Common Lisp Version 1.5-r13651  (DarwinX8664)!

? 
Run Code Online (Sandbox Code Playgroud)

是否可以编写shell脚本以使用Clozure CL运行lisp代码?我确信我做的事情很傻.

我安装的是:http: //openmcl.clozure.com/

lisp common-lisp

8
推荐指数
1
解决办法
2922
查看次数

UIImage - 实现自动级别算法

我想为我在iPhone应用程序中显示的UIImage实现"自动关卡"选项.在我尝试自己实现它之前,我想知道我应该使用的API中是否有任何图像处理方法,直方图等.或者我应该抓住底层CGImage并处理它?(我是iPhone开发新手.)

谢谢

MV

iphone algorithm image-processing

7
推荐指数
1
解决办法
5680
查看次数

在iOS上使用OpenGL ES 2.0创建FBO的最小示例

我在创建FBO时遇到问题,然后在我的iOS应用程序中将其用作纹理.我在github上传了我的应用程序的精简版,显示了问题.我只是一个空白的屏幕,有一种奇怪的颜色,我从来没有设置过.检查状态显示FBO已成功创建.

https://github.com/glman74/simpleFBO

我已经查看了相关的stackoverflow问题,特别是datenwolf下面的链接,它显示了如何使用GLUT设置FBO,但不使用着色器.我仍然不确定我做错了什么.

https://github.com/datenwolf/codesamples/blob/master/samples/OpenGL/minimalfbo/

我还在这里附上代码的相关部分.在renderFBO方法中,我只是在做清楚.我原本期望在主渲染中渲染多边形时使用这种纯色(绿色)纹理.

FBO设置:

// intialize FBO
- (void)setupFBO
{
    fbo_width = 512;
    fbo_height = 512;

    glGenFramebuffers(1, &fboHandle);
    glGenTextures(1, &fboTex);
    glGenRenderbuffers(1, &depthBuffer);

    glBindFramebuffer(GL_FRAMEBUFFER, fboHandle);

    glBindTexture(GL_TEXTURE_2D, fboTex);
    glTexImage2D( GL_TEXTURE_2D,
                 0,
                 GL_RGBA,
                 fbo_width, fbo_height,
                 0,
                 GL_RGBA,
                 GL_UNSIGNED_BYTE,
                 NULL);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER_APPLE, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, fboTex, 0);

    glBindRenderbuffer(GL_RENDERBUFFER, depthBuffer);
    glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24_OES, fbo_width, fbo_height);
    glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER_APPLE, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthBuffer);

    // FBO status check
    GLenum status;
    status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
    switch(status) {
        case GL_FRAMEBUFFER_COMPLETE:
            NSLog(@"fbo complete");
            break;

        case GL_FRAMEBUFFER_UNSUPPORTED:
            NSLog(@"fbo …
Run Code Online (Sandbox Code Playgroud)

opengl-es ios

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