首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Noise++ Perlin模块始终返回0

Noise++ Perlin模块始终返回0
EN

Stack Overflow用户
提问于 2013-10-24 23:25:15
回答 1查看 520关注 0票数 0

我使用Noise++库在我的程序中产生噪音,至少这是我的目标。为了测试它,我把它设置成一个测试,但是无论我给它什么参数,我只得到0。

如果有人有任何使用Noise++的经验,如果您能够检查并查看我是否做错了什么,这将是非常有帮助的。

代码语言:javascript
复制
//
// Defaults are
// Frequency    =   1
// Octaves      =   6
// Seed         =   0
// Quality      =   1
// Lacunarity   =   2
// Persistence  =   0.5
// Scale        =   2.12
//

NoiseppNoise::NoiseppNoise( ) : mPipeline2d( 2 )
{
    mThreadCount = noisepp::utils::System::getNumberOfCPUs ();

    mPerlin.setSeed(4321);
    if ( mThreadCount > 2 ) {
        mPipeline2d = noisepp::ThreadedPipeline2D( mThreadCount );
    }

    mNoiseID2D = mPerlin.addToPipe ( mPipeline2d );
    mCache2d = mPipeline2d.createCache();
}

double NoiseppNoise::Generate( double x, double y )
{
    return mPipeline2d.getElement( mNoiseID2D )->getValue ( x, y, mCache2d );
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-25 02:04:35

我在代码中添加了以下行以进行编译(除了清理缓存外,基本上没有任何更改):

代码语言:javascript
复制
struct NoiseppNoise
{
  NoiseppNoise();
  double Generate( double x, double y );

  noisepp::ThreadedPipeline2D mPipeline2d;
  noisepp::ElementID mThreadCount;
  noisepp::PerlinModule mPerlin;
  noisepp::ElementID mNoiseID2D;
  noisepp::Cache*  mCache2d;
};

/* constructor as in the question */

double NoiseppNoise::Generate( double x, double y )
{
  mPipeline2d.cleanCache (mCache2d);  // clean the cache before calculating value
  return mPipeline2d.getElement( mNoiseID2D )->getValue ( x, y, mCache2d );
}

把它称为

代码语言:javascript
复制
NoiseppNoise np;
std::cout<<np.Generate(1.5,1)<<std::endl;

实际上输出了一个很好的值,0.0909给我。

但是,如果使用两个“整数”(例如3.0和5.0)调用它,则输出将为0,因为在某些时候执行的语句类似于以下语句:

代码语言:javascript
复制
const Real xs = Math::CubicCurve3 (x - Real(x0));

如果参数是整数,那么xReal(x0)总是相同的,因为Real(x0)基本上是x的整数部分,所以xs将设置为0。在此之后,需要进行更多的计算才能得到实际值,但从决定性的角度来说,它变成了0。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19578503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档