当前位置: 首页>>代码示例>>C++>>正文


C++ TriMesh::appendTexCoords方法代码示例

本文整理汇总了C++中TriMesh::appendTexCoords方法的典型用法代码示例。如果您正苦于以下问题:C++ TriMesh::appendTexCoords方法的具体用法?C++ TriMesh::appendTexCoords怎么用?C++ TriMesh::appendTexCoords使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TriMesh的用法示例。


在下文中一共展示了TriMesh::appendTexCoords方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: regenerateVboMesh

void BatchedMesh::regenerateVboMesh(MaterialRef material) {
  // cout << "BatchedMesh::regenerateVboMesh(): Regenerating VboMesh for
  // material:"
  //     << material << endl;

  TriMesh combinedMesh;
  vector<Vec3f> vertices;
  vector<ColorAf> colors;
  vector<Vec2f> texCoords;
  vector<uint32_t> indices;
  uint32_t vertCount = 0;
  _materialBounds[material] = AxisAlignedBox3f();

  for (BatchInfoRef batchInfo : _meshes[material]) {
    TriMesh *internalMesh = batchInfo->mesh->getInternalMesh(
        batchInfo->transform->getTransformMatrixLocal());

    vertices = internalMesh->getVertices();
    combinedMesh.appendVertices(vertices.data(), vertices.size());

    colors = internalMesh->getColorsRGBA();
    combinedMesh.appendColorsRgba(colors.data(), colors.size());

    texCoords = internalMesh->getTexCoords();
    combinedMesh.appendTexCoords(texCoords.data(), texCoords.size());

    indices = internalMesh->getIndices();
    std::transform(std::begin(indices), std::end(indices), std::begin(indices),
                   [vertCount](uint32_t x) { return x + vertCount; });
    combinedMesh.appendIndices(indices.data(), indices.size());

    vertCount += vertices.size();

    _materialBounds[material].include(internalMesh->calcBoundingBox());
  }

  _vboMeshes[material] = gl::VboMesh::create(combinedMesh);

  // Recalculate master bounds
  _bounds = AxisAlignedBox3f();
  for (auto &kvp : _materialBounds) {
    _bounds.include(kvp.second);
  }
}
开发者ID:,项目名称:,代码行数:44,代码来源:

示例2: appendTexCoords

 static void appendTexCoords( TriMesh& mesh, const std::vector<Vec2f>& texCoords )
 {
     mesh.appendTexCoords( &texCoords[0], texCoords.size() );
 }
开发者ID:simongeilfus,项目名称:LuaBindings,代码行数:4,代码来源:BindCinderTriMesh.cpp

示例3: setup

void TextureTestApp::setup()
{
  Vec3f vertices[] = {
    { -1, -1, 0 }, {  1, -1, 0 }, {  1, 1, 0 },
    { -1, -1, 0 }, {  1,  1, 0 }, { -1, 1, 0 }, 
  };
  
  mesh.appendVertices(vertices,
                      sizeof(vertices) / sizeof(vertices[0]));

  Vec2f tex_coords[] = {
    { 0, 0.5 }, { 0.5, 0.5 }, { 0.5, 0 },
    { 0, 0.5 }, { 0.5, 0 }, { 0, 0 },
  };
  
  mesh.appendTexCoords(tex_coords,
                       sizeof(tex_coords) / sizeof(tex_coords[0]));

  uint32_t indices[] = {
    0, 1, 2,
    3, 4, 5,
  };
  
  mesh.appendIndices(indices,
                     sizeof(indices) / sizeof(indices[0]));

  mesh.recalculateNormals();
  
  // assetフォルダから画像を読み込む
  // 幅と高さは2のべき乗でなくてもよい
  image = loadImage(loadAsset("miku.png"));

  // 平行光源を1つ用意
  light = std::unique_ptr<gl::Light>(new gl::Light(gl::Light::DIRECTIONAL, 0));
  light->setAmbient(Color(0.0, 0.0, 0.0));
  light->setDiffuse(Color(1.0, 1.0, 1.0));
  light->setDirection(Vec3f(0.0, 0.0, 1.0));

  // カメラの準備
  camera = CameraPersp(getWindowWidth(), getWindowHeight(),
                       35.0, 0.5, 1000.0);

  camera.lookAt(Vec3f(0.0, 0.0, 700.0),
                Vec3f(0.0, 0.0, 0.0));

 
  // テクスチャON
  gl::enable(GL_TEXTURE_2D);
  // 半透明処理を有効化
  gl::enableAlphaBlending(true);
 
  // カリングON
  gl::enable(GL_CULL_FACE);

  // gl::color or 頂点カラーを対象にしてライティングの計算を行う
  gl::enable(GL_COLOR_MATERIAL);
  
  // ライティングON
  gl::enable(GL_LIGHTING);
  // 法線を正規化する
  gl::enable(GL_NORMALIZE);

  rx = ry = rz = 0.0;
}
开发者ID:PS14,项目名称:Cinder-Sample,代码行数:64,代码来源:TextureTestApp.cpp


注:本文中的TriMesh::appendTexCoords方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。