小编Cor*_*mey的帖子

使用顶点数组对象和顶点缓冲区对象

我试图理解这两个,如何使用它们以及它们是如何相关的.假设我想创建一个简单的地形和一个纹理立方体.对于这两个对象,我有三角形顶点的数组,对于立方体,我有一个包含纹理数据的数组.我的问题是:如何使用VAO和VBO来创建和渲染这两个?

  1. 我是否必须为每个对象创建一个VAO和VBO?
  2. 或者应该为每个对象的VBO(顶点,纹理数据等)创建一个VAO?

有许多教程和书籍,但我仍然不知道如何理解和使用这些概念.

opengl buffer vbo vertices vao

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

VBA - 有条件地调用具有某些可选参数的函数的解决方法?

考虑具有多个可选参数的函数.例如:

Function foo(Optional a, Optional b, Optional c, Optional d)
Run Code Online (Sandbox Code Playgroud)

如果我只想调用特定的函数,参数不是null,或者是其他一些测试,(因为该函数会引发错误,否则,除非参数丢失).

一个例子是Collection类.Add方法有3个可选参数.许多自定义类包装了这个类 - 比如创建一个可归档的类Persons of'Person'自定义类或类似的东西.包装器必须处理6种组合:仅添加密钥,添加密钥并指定之前,添加密钥并指定After,不添加密钥并指定Before,不添加密钥并指定After,no Key和no Before /后.如果将包装器写入具有十几个可选参数的Workbook.Save之类的东西会更糟.

我不知道一些繁琐的构造的替代方案,如:

If a <> Null Then
    If b <> Null Then
        If c <> Null Then
            If d <> Null Then
                foo a, b, c, d
            Else
                foo a, b, c
            End If
        Else
            If d <> Null Then
                foo a, b, d
            Else
                foo a, b
            End If
        End If
    Else
    '... Etc ...
Run Code Online (Sandbox Code Playgroud)

显然,嵌套的Ifs和​​一般代码开销的数量大约是每个额外可选变量的两倍.

在.NET中,可以传入类型System.Type.Missing,允许表达式更加简单.

就像在C#中一样,它可以像以下一样干净:

foo(a ?? …
Run Code Online (Sandbox Code Playgroud)

vba

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

标签 统计

buffer ×1

opengl ×1

vao ×1

vba ×1

vbo ×1

vertices ×1