AOTextureGenerator.java 文件源码

java
阅读 27 收藏 0 点赞 0 评论 0

项目:Cubes 作者:
protected static void generate(FileHandle file, float strength) {
  Pixmap blocks = new Pixmap(INDIVIDUAL_SIZE * 3, INDIVIDUAL_SIZE * 3, AOTextureGenerator.FORMAT);
  Pixmap gaussian = new Pixmap(INDIVIDUAL_SIZE, INDIVIDUAL_SIZE, AOTextureGenerator.FORMAT);

  Pixmap output = new Pixmap(TEXTURE_SIZE, TEXTURE_SIZE, AOTextureGenerator.FORMAT);

  double[][] gwm = AOTextureGenerator.gaussianWeightMatrix(SIGMA);
  int gaussianRadius = (gwm.length - 1) / 2;

  Color blockColor = new Color(strength, strength, strength, 1f);

  for (int i = 0; i < TOTAL; i++) {
    String n = name(i);
    System.out.print(n + " ");

    AOTextureGenerator.clearPixmap(blocks);
    AOTextureGenerator.clearPixmap(gaussian);

    AOTextureGenerator.setupPixmap(blocks, i, blockColor);

    AOTextureGenerator.gaussianPixmap(blocks, gaussian, gwm, gaussianRadius);

    //PixmapIO.writePNG(folder.child(n + "_blocks_" + sigma + ".png"), blocks);
    //PixmapIO.writePNG(folder.child(n + "_gaussian_" + sigma + ".png"), gaussian);

    output.drawPixmap(gaussian, (i % SQRT_TOTAL) * INDIVIDUAL_SIZE, (i / SQRT_TOTAL) * INDIVIDUAL_SIZE, 0, 0, INDIVIDUAL_SIZE, INDIVIDUAL_SIZE);

    if (i % SQRT_TOTAL == SQRT_TOTAL - 1) System.out.println();
  }

  PixmapIO.writePNG(file, output);
  output.dispose();
  blocks.dispose();
  gaussian.dispose();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号