예제 #1
0
void addTrees() {
    for(int i = 0; i < 150; i++) {
        Part * trunk = new Part(ID_TREE_BARK, textureMapCylinder, cylMesh, -1);
        Part * top = new Part(treeTopMesh, -1);
        parts.push_back(trunk);
        trunk->addChild(top);
        
        int area = WORLD_SZ;
        int xLoc = (rand() % area*2) - area;
        int zLoc = (rand() % area * 0.2) - area;
        int yLoc = -10;
        
        float scaleRand = getRandFloat01() - 0.3;
        
        float scale1 = 1.75f + scaleRand;
        float scale2 = scale1*3;
        trunk->addScale(scale1/4.0, scale1*3, scale1/4.0);
        trunk->addTranslation(xLoc, yLoc, zLoc);
        float trunkG = 0.05;
        float trunkR = 0.1;
        trunk->setMaterialAmbient(trunkR, trunkG, 0.0, 1.0);
        trunk->setMaterialDiffuse(trunkR, trunkG, 0.0, 1.0);
        trunk->setMaterialSpecular(0, 0, 0, 1.0);
        trunk->setMaterialShininess(0);
        
        float topR = 0.05;
        float topG = 0.2;
        float topB = 0.05;
        top->addScale(scale2, scale2/4, scale2);
        top->addTranslation(0, 150, 0);
        top->setMaterialAmbient(topR, topG, topB, 1.0);
        top->setMaterialDiffuse(topR, topG, topB, 1.0);
        top->setMaterialSpecular(0, 0, 0, 1.0);
        top->setMaterialShininess(0);
    }
}