小编Jos*_*osh的帖子

OpenGLES 2.0:gl_VertexID等价?

我正在尝试通过动态计算顶点位置来创建点网格,这是基于它们在发送到着色器的顶点数组中的索引.是否有我可以在着色器中调用的gl_VertexID变量的等效变量?或者另一种访问阵列中位置的方法,而不必向GPU发送更多数据?谢谢,乔希.

这是我的顶点着色器:

attribute vec4 vertexPosition;
uniform mat4 modelViewProjectionMatrix;
vec4 temp;
uniform float width;

void main()
{    
    temp = vertexPosition;

    // Calculate x and y values based on index:
    temp.y = floor(gl_VertexID/width);
    temp.x = gl_VertexID - width*temp.y;

    gl_Position = modelViewProjectionMatrix * temp;
}
Run Code Online (Sandbox Code Playgroud)

glsl vertex vertex-shader opengl-es-2.0

6
推荐指数
1
解决办法
4014
查看次数

Firestore,如何构建“likedBy”查询

我在思考如何最好地构建我的(非常简单的)Firestore 应用程序时遇到了一些麻烦。我有一组这样的用户:

users: {
   'A123': {
      'name':'Adam'
   },
   'B234': {
      'name':'Bella'
   },
   'C345': {
      'name':'Charlie'
   }
}
Run Code Online (Sandbox Code Playgroud)

...并且每个用户都可以“喜欢”或“不喜欢”任意数量的其他用户(例如 Tinder)。

我想构建一个“喜欢”表(或 Firestore 等效表),以便我可以列出我还没有喜欢或不喜欢的人。我最初的想法是在用户表中创建一个“喜欢”对象,其布尔值如下所示:

users: {
   'A123': {
      'name':'Adam',
      'likedBy': {
         'B234':true,
      },
      'disLikedBy': {
         'C345':true
      }
   },
   'B234': {
      'name':'Bella'
   },
   'C345': {
      'name':'Charlie'
   }
}
Run Code Online (Sandbox Code Playgroud)

这样,如果我是 Charlie 并且我知道我的 ID,我可以列出我还没有喜欢或不喜欢的用户:

var usersRef = firebase.firestore().collection('users')
.where('likedBy.C345','==',false)
.where('dislikedBy.C345','==',false)
Run Code Online (Sandbox Code Playgroud)

这不起作用(每个人都被列出)所以我怀疑我的方法是错误的,尤其是“==false”部分。有人可以指出我如何构建这个的正确方向吗?作为一个额外的问题,如果有人改变了他们的名字会发生什么?我是否需要更改所有嵌入的“likedBy”数据?或者我可以使用云功能来实现这一点吗?

谢谢!

node.js firebase google-cloud-firestore

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