我正在尝试实现libnoise库并生成一个高度图,然后可以将其导入L3DT中以使用Perlin噪声算法来渲染基本3D地形。这是我作为计算机科学本科生的最后一个项目。主题本质上是针对地形生成的过程内容生成。
我已经正确设置了Eclipse CDT,并链接了所有必需的头文件和库。该程序与libnoise教程系列完全相同,特别是我将在此处链接的第三个教程:
http://libnoise.sourceforge.net/tutorials/tutorial3.html
一切似乎都工作正常,构建成功,程序运行完成,但是无论我做什么输出位图文件,“output.bmp”都不会呈现在可执行文件的目录中。
我在这里想念什么?输出文件是否放置在默认目录的其他位置?
以下是进一步说明的代码:
/*
* Noise.cpp
*
* Created on: 23-Feb-2015
*
*/
#include <iostream>
#include <stdio.h>
#include <noise.h>
#include <noiseutils.h>
using namespace noise; // Sets reference for usage of the the noise class objects
using namespace std;
void main()
{
// CREATION OF THE NOISE MAP
module::Perlin Module; // Instantiates the Perlin class object to be used as the source for the noise generation.
utils::NoiseMap heightMap; // Creation of the 2D empty noise map.
utils::NoiseMapBuilderPlane heightMapBuilder; // Used to fill the noise map with the noise values taken from an (x,y) plane.
heightMapBuilder.SetSourceModule (Module); // Sets the Perlin module as the source for noise generation.
heightMapBuilder.SetDestNoiseMap (heightMap); // Sets the empty noise map as the target for the output of the planar noise map builder.
heightMapBuilder.SetDestSize(256,256); // Sets the size of the output noise map.
heightMapBuilder.SetBounds (2.0, 6.0, 1.0, 5.0); // Defines the vertices of the bounding rectangle from which the noise values are produced. lower x, upper x, lower y, upper y.
heightMapBuilder.Build (); // Builds the noise map.
// RENDERING THE TERRAIN HEIGHT MAP
utils::RendererImage renderer;
utils::Image image;
renderer.SetSourceNoiseMap(heightMap);
renderer.SetDestImage(image);
renderer.Render();
// WRITING THE HEIGHT MAP IMAGE TO AN OUTPUT FILE
utils::WriterBMP writer;
writer.SetSourceImage(image);
writer.SetDestFilename("output.bmp");
system("pause");
}
最佳答案
在以下代码行中,使用图像数据和文件名设置utils::WriterBMP
实例
utils::WriterBMP writer;
writer.SetSourceImage(image);
writer.SetDestFilename("output.bmp");
但是您实际上从未调用过
writer
函数来写入图像数据。我实际上不能从他们的文档中找到该类或函数名称。但我敢肯定,您可以轻松解决此问题。关于c++ - 使用Libnoise生成高度图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28723220/