小编Tim*_*lus的帖子

用new关键字创建的c ++对象不呈现; 在堆栈上创建的对象

编辑:我已经删除了所有纹理和法线贴图,但问题仍然存在

我试图在屏幕上绘制一块地形.渲染函数如下所示:

void TerrainChunk::Render()
{
   std::cout << "Render Me!\n";
   glColor3f(0.5f, 0.5f, 0.5f)
   glDisable(GL_LIGHTING);
   for(int x = 1; x < kChunkSize - 1; x++)
   {
      for(int z = 1; z < kChunkSize - 1; z++)
      {
         std::cout << height_map_[x][z] << " ";
         glBegin(GL_TRIANGLE_STRIP);
            glVertex3f(x, height_map_[x][z], z);
            glVertex3f(x+1, height_map_[x+1][z], z);       
            glVertex3f(x, height_map_[x][z+1], z+1);
            glVertex3f(x+1, height_map_[x+1][z+1], z+1);
         glEnd();
      }
      std::cout << std::endl;
   }
   glEnable(GL_LIGHTING);
}
Run Code Online (Sandbox Code Playgroud)

在堆栈上创建对象时

TerrainChunk chunk("chunk1.png", "grass.png");
chunk.Init();
Run Code Online (Sandbox Code Playgroud)

它渲染得很完美.

当我用新的创建它

TerrainChunk *chunk = new TerrainChunk("chunk1.png", "grass.png");
chunk->Init();
Run Code Online (Sandbox Code Playgroud)

没有出现.在这两种情况下,都会调用Render并打印出正确的高度图.我希望这两种情况都表现得相同.

编辑:这是请求的Init()代码.它只是在每次调用Render()时加载我已经验证过的高度图. …

c++ opengl

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

如何以亚像素精度转换图像?

我有一个系统需要在屏幕上移动图像.我目前正在使用png并将其放置在所需的屏幕坐标处.

由于屏幕分辨率和所需帧速率的组合,一些帧是相同的,因为图像尚未移动整个像素.不幸的是,屏幕的分辨率是不可协商的.

我对子像素渲染如何平滑边缘有一个大致的了解,但我一直无法找到资源(如果存在)我如何使用着色来将图像转换少于一个像素.

理想情况下,这可以用于任何图像,但如果它只能用简单的形状像圆形或环形,那也是可以接受的.

graphics rendering image-processing subpixel

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

标签 统计

c++ ×1

graphics ×1

image-processing ×1

opengl ×1

rendering ×1

subpixel ×1