小编Jay*_*esh的帖子

如何在OpenGL(ES)中正确渲染重合多边形

我知道通过在OpenGL ES中设置深度函数,可以控制在3D场景中渲染重叠几何的方式.我gl.depthFunc(gl.LEQUAL)在我的代码中使用(webgl).

然而,当两组多边形重合并且具有不同颜色时,所得到的表面变成两种颜色的任意混合图案(随着相机位置改变而改变,因此导致闪烁).看看这张图片:

在此输入图像描述

我怎样才能解决这个问题?我尝试了不同的depthFunc值,但没有一个能解决这个问题.我希望巧合的多边形有单一的颜色,哪一个没关系.

opengl-es depth-buffer webgl

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

在 Electron 中检测 Macbook 触摸板上的捏合缩放

我能找到的在 Javascript 中检测捏合缩放的唯一方法是通过Gesture 和 Touch events。但这些事件仅在 Safari 中实现(甚至 Chrome 也没有)。在 Safari 中检测手势事件的相同代码在我的电子应用程序中没有检测到任何内容。有没有办法在 Electron 中检测 MacBook 触控板上的捏合缩放或其他两个手指手势?

macos electron

8
推荐指数
0
解决办法
449
查看次数

用于查找应用运行位置的GAE API - 本地计算机或gae云

我有一个Google App引擎应用程序,我想要以不同的方式工作,具体取决于它是否在我的本地开发环境中运行(即使用dev_appserver.py),而不是在实际的GAE云中运行.

目前我使用一个标志变量,我手动切换以实现这一点.但我相信有一天我会忘记改变它并导致问题.所以我想知道是否有API或其他方法来确定GAE应用程序实际运行的位置?

谢谢.

google-app-engine

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

查找 Mac OSX 上当前聚焦的应用程序窗口

我正在编写一个桌面使用情况统计应用程序。它运行一个后台守护程序,该守护程序定期唤醒,查找当前焦点的应用程序窗口的名称并将该数据记录在数据库中。

我设法在 xprop 实用程序的帮助下在 Linux 桌面上执行此操作(您可以在此处找到它)。

我怎样才能在 Mac OSX 上做同样的事情?有没有直接/间接的方法可以从 python 脚本中执行此操作?(PyObjC?)

python macos desktop pyobjc

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

如何正确地在软件中进行z排序

我通过在软件中进行所有必要的计算来在2D画布上渲染3D对象.我没有使用图形加速.

最初所有的对象都是相同大小的立方体,所以我可以根据它们在相机Z中的距离对它们进行排序,这样就可以正确地对它们进行排序.但现在我正在尝试绘制不同尺寸的立方体.这使得我的简单z排序算法在透视投影中失败.

我查看了计算机图形书籍并找到了所使用的技术,他们最终推荐基于像素的两个多边形比较,以确定哪一个比其他多边形领先.可能这就是他们在显卡中做的事情.但是在软件中这样做似乎过于困难,我想即使我能做到这一点,实际使用也会很慢.

在软件中有一个简单的技巧吗?3D图形早期的任何例子,当图形卡不可用时?

虽然这是一般的3D图形问题,如果它有帮助,我在HTML5 Canvas 2D API之上做这个.

3d

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

HTML5离线缓存程序化到期

我有一个HTML5应用程序,它使用清单文件进行脱机缓存.触发更新缓存的唯一方法是更改​​服务器上的清单文件.我正在寻找一种使缓存过期并实施更新的编程方式.

我查看了规范,在window.applicationCache上寻找一些方法使缓存失效.但没有找到任何.有一个update()方法,但只有在缓存过期时才会更新(即清单文件有变化).所以这没有用.

任何人都知道一种程序化的方式来使应用程序缓存过期并强制下载?

html5 offline

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

颜色属性如何在VBO中起作用?

我正在编写OpenGL ES 2.0(Webgl).我正在使用VBO来绘制基元.我有顶点数组,颜色数组和索引数组.我查看了示例代码,书籍和教程,但有一点我没有得到 - 如果每个顶点定义颜色,它如何影响与这些顶点相邻的多边形表面?(我是OpenGL(ES)的新手)

我将用一个例子来解释.我有一个立方体画.根据我在OpenGLES书中所读到的,颜色被定义为顶点属性.在这种情况下,如果我想用6种不同颜色绘制立方体的6个面,我应该如何定义颜色.我混淆的根源是:每个顶点对3个面都是通用的,那么它如何帮助定义每个顶点的颜色?(或者应该根据索引定义颜色吗?).我们需要将这些面细分为三角形的事实使我更难理解这种关系是如何工作的.边缘也是同样的混乱.不是绘制三角形,而是说我想用LINES原语绘制边.每个边缘都有不同的颜色.在这种情况下,我该如何定义颜色属性?

我见过很少的工作实例.特别是本教程:http://learningwebgl.com/blog/?p = 370

我在上面的例子中看到如何定义颜色数组以绘制具有6个不同颜色面的立方体,但我不明白为什么这样定义.(例如,为什么每种颜色都会被复制4次到unpackedColors中?)

有人可以解释颜色属性在VBO中是如何工作的吗?

[上面的链接似乎无法访问,因此我将在此处发布相关代码]

cubeVertexPositionBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertexPositionBuffer);
vertices = [
  // Front face
  -1.0, -1.0,  1.0,
   1.0, -1.0,  1.0,
   1.0,  1.0,  1.0,
  -1.0,  1.0,  1.0,

  // Back face
  -1.0, -1.0, -1.0,
  -1.0,  1.0, -1.0,
   1.0,  1.0, -1.0,
   1.0, -1.0, -1.0,

  // Top face
  -1.0,  1.0, -1.0,
  -1.0,  1.0,  1.0,
   1.0,  1.0,  1.0,
   1.0,  1.0, -1.0,

  // Bottom face
  -1.0, -1.0, -1.0,
   1.0, -1.0, -1.0,
   1.0, -1.0,  1.0, …
Run Code Online (Sandbox Code Playgroud)

opengl-es webgl

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

使用RabbitMQ获得长时间运行任务的结果

我有一个客户端发送http请求下载文件的场景.该文件需要动态生成,通常需要5-15秒.因此,我正在寻找一种解决方案,将此操作拆分为3个http请求.

  1. 第一个请求会触发文件的生成.
  2. 客户端每5秒轮询一次服务器以检查文件是否可以下载
  3. 当对轮询请求的响应为肯定时,客户端开始下载该文件

为了实现这一点,我正在寻找像RabbitMQ这样的Message Queue解决方案.它们似乎提供了一个可靠的框架来异步运行长时间运行的任务.但是在阅读了关于RabbitMQ 的教程后,我不确定如何收到操作结果.

这就是我的想法:

前端服务器接收来自客户端的请求,并根据需要将消息发送到RabbitMQ.该前端服务器将具有3个端点

/generate
/poll
/download
Run Code Online (Sandbox Code Playgroud)

当客户端/generate使用GET参数调用时request_uid=AAA,前端服务器将使用有效负载中的request_uid向RabbitMQ发送消息.任何自由工作者随后将收到此消息并开始生成对应的文件AAA.

客户端将继续轮询/pollrequest_uid=AAA检查任务完成.

任务完成后,客户端将调用/downloadrequest_uid=AAA希望下载该文件.

现在的问题是如何将/poll/download前端服务器的处理程序会知道有关文件生成作业的状态?RabbitMQ如何将任务结果传达给生产者.或者我必须在RabbitMQ之外实现这样的机制?(消费者将其结果放入文件中/var/completed/AAA)

amqp rabbitmq

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

Google App Engine dev_appserver.py如何在不重新启动的情况下提供新鲜内容?

我喜欢Google App Engine开发环境的一个方面是,每次我更改任何python源文件,其他静态文件甚至配置文件时,我都不必重新启动服务器.它已经破坏了我,当我使用其他服务器环境(tornadoweb,web.py,node.js)时,我忘记重新启动服务器.

任何人都可以解释GAE是如何做到的吗?使其他服务器(至少基于python)实现同样的事情有多难?

google-app-engine

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

在 node.js 绑定中实现继承

我正在围绕 C++ 库编写 Node.js 绑定。我可以识别 C++ 库中的关键对象,我可以将它们作为类公开给 Node.js(即 ObjectWrap 的衍生物)。我还可以看到这些对象之间的继承关系。

我怎样才能暴露ClassAClassBClassC如Node.js的类(的衍生物ObjectWrap),并操纵他们的原型(在V8中的C ++代码),以便ClassBClassC是衍生物ClassA

c++ v8 prototypal-inheritance node.js

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