• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ Material函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中Material函数的典型用法代码示例。如果您正苦于以下问题:C++ Material函数的具体用法?C++ Material怎么用?C++ Material使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了Material函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: while

Material Material::cloneMe()
{
    String name = mMaterial->getName();

    unsigned int i = 0;
    Ogre::MaterialPtr ptr = Ogre::MaterialManager::getSingletonPtr()->getByName(name+StringUtils::toString(i));
    while(ptr.getPointer())
    {
        ++i;// keep going until we get a unique name
        ptr = Ogre::MaterialManager::getSingletonPtr()->getByName(name+StringUtils::toString(i));
    }

    Ogre::MaterialPtr newptr = mMaterial->clone(name+StringUtils::toString(i));

    return Material(newptr.getPointer());
}
开发者ID:RileyA,项目名称:LD18_Fratricide,代码行数:16,代码来源:Material.cpp


示例2: TEXT

SoftBody::Material * SoftBody::PushMaterial()
{
    PhysicsFn->SelectMemory( TEXT("SoftBodies") );
    Material * pMaterial = New Material();
    PhysicsFn->UnSelectMemory();

    pMaterial->fLinearStiffness = 0.0f;
    pMaterial->fAngularStiffness = 0.0f;
    pMaterial->fAreaStiffness = 0.0f;
    pMaterial->fVolumeStiffness = 0.0f;
    pMaterial->dwFlags = 0;

    m_arrMaterials.Push( pMaterial );

    return pMaterial;
}
开发者ID:Shikifuyin,项目名称:Scarab-Engine,代码行数:16,代码来源:SoftBody.cpp


示例3: Material

Material AasRenderer::CreateGeometryShadowMaterial(gfx::RenderingDevice &device)
{
	BlendState blendState;
	blendState.blendEnable = true;
	blendState.srcBlend = D3DBLEND_SRCALPHA;
	blendState.destBlend = D3DBLEND_INVSRCALPHA;
	RasterizerState rasterizerState;
	rasterizerState.cullMode = D3DCULL_NONE;
	DepthStencilState depthStencilState;
	depthStencilState.depthWrite = false;

	auto vs{ device.GetShaders().LoadVertexShader("shadow_geom_vs") };
	auto ps{ device.GetShaders().LoadPixelShader("diffuse_only_ps") };

	return Material(blendState, depthStencilState, rasterizerState, {}, vs, ps);
}
开发者ID:pakoito,项目名称:TemplePlus,代码行数:16,代码来源:aasrenderer.cpp


示例4: REQUIRE_PARSE_SUCCESS

ParserResult MaterialSymbol::ParseLine(const std::vector<std::string>& aParameters, Scene& aOutput){
    if(aParameters.size() != 6){
        return kParseMalformedLine;
    }

    double se, diffuse, specular, shininess, reflectivity;
    REQUIRE_PARSE_SUCCESS(Misc::GetDouble(aParameters[1], &se));
    REQUIRE_PARSE_SUCCESS(Misc::GetDouble(aParameters[2], &diffuse));
    REQUIRE_PARSE_SUCCESS(Misc::GetDouble(aParameters[3], &specular));
    REQUIRE_PARSE_SUCCESS(Misc::GetDouble(aParameters[4], &shininess));
    REQUIRE_PARSE_SUCCESS(Misc::GetDouble(aParameters[5], &reflectivity));

    aOutput.mMaterials.push_back(Material(se, diffuse, specular, shininess, reflectivity));

    return kParseSuccess;
}
开发者ID:davidsami,项目名称:RayRay,代码行数:16,代码来源:ParserSymbols.cpp


示例5: readColor

Material SceneSettingReader::readMaterial()
{
    settings_.beginGroup("material");
    settings_.beginGroup("diffuse");
    const Color diffuse = readColor();
    settings_.endGroup();
    settings_.beginGroup("specular");
    const Color specular = readColor();
    settings_.endGroup();
    settings_.beginGroup("ambient");
    const Color ambient = readColor();
    settings_.endGroup();
    const double shininess = settings_.value("shininess").toDouble();
    settings_.endGroup();
    return Material(specular, diffuse, ambient, shininess);
}
开发者ID:JordanHeinrichs,项目名称:RayTracer,代码行数:16,代码来源:SceneSettingReader.cpp


示例6: setGame

void MainMenu::init(Game* game)
{
	// Important to set the game for changeState() to work!
	setGame(game);

	// Create the menu.
	mMenu = new Menu("MainMenu", NavigationType::MOUSE, HOR); 
	mMenu->setSize(880, 700, 256, 512);
	mMenu->addMenuItem(new MenuItem("SelectLevel", "data/imgs/buttons/play_standard.png", "data/imgs/buttons/play_glow.png"));
	mMenu->addMenuItem(new MenuItem("About", "data/imgs/buttons/about_standard.png", "data/imgs/buttons/about_glow.png"));
	mMenu->addMenuItem(new MenuItem("Quit", "data/imgs/buttons/quit_standard.png", "data/imgs/buttons/quit_glow.png"));
	mMenu->buildMenu(116*1.5, 50*1.5);
	mMenu->connect(&MainMenu::menuMessage, this);

	// Side menu.
	mAboutMenu = new Menu("SideMenu", NavigationType::MOUSE, HOR); 
	mAboutMenu->setSize(1000, 700, 256, 512);
	MenuItem* item = new MenuItem("Back", "data/imgs/buttons/back_standard.png", "data/imgs/buttons/back_glow.png");
	mAboutMenu->addMenuItem(item);
	mAboutMenu->buildMenu(116*1.5, 50*1.5);
	mAboutMenu->connect(&MainMenu::menuMessage, this);

	// Create the world.
	mWorld = new World();
	mLight = new Light(D3DXVECTOR3(0, 25, 0), D3DXVECTOR3(0, -1, 0), Material(WHITE, 0), 32, 1600.0f);
	mWorld->addLight(mLight); 
	mWorld->addAmbientLight(D3DCOLOR_ARGB(200, 100, 100, 100));

	mLogo = gGraphics->loadTexture("data/imgs/logo.png");
	mAboutTexture = gGraphics->loadTexture("data/imgs/about.png");

	// Set the graphics light list.
	gGraphics->setLightList(mWorld->getLights());

	// Setup the camera.
	gCamera->setPosition(D3DXVECTOR3(0, 5000, 0));
	gCamera->setDirection(D3DXVECTOR3(0, -0.6, 0.4));

	ShowCursor(true);

	gSound->muteMusic(false);
	gSound->playMusic("data/sound/menu_loop.wav", true, 0);
	gSound->setVolume(0.15f);

	mShowingAbout = false;
}
开发者ID:simplerr,项目名称:Project-Invasion,代码行数:46,代码来源:MainMenu.cpp


示例7: GraphicsInit

bool GraphicsInit()
{
    graphicsEngine  = new Renderer();
    customScene     = new CustomScene("MeshScene", graphicsEngine);
    
    // Set the lights
    globalLight     = new Light(Material(MaterialWhite), glm::vec4(0.00001, 2.0, 25.0, 1.0));
    customScene->addLight(globalLight);
    
    // Camera's are added in the CustomScene's constructor
    customModel     = new CustomModel( customScene, NULL, None );
    customScene->addModel(customModel);
    graphicsEngine->initializeScenes();
    graphicsEngine->initializeScenes();
    
    return true;
}
开发者ID:Michael-Lfx,项目名称:OpenGL-ES-3.0-Cookbook,代码行数:17,代码来源:NativeTemplate.cpp


示例8: QOpenGLShaderProgram

//===================================================================
Mesh::Mesh(const Mesh &mesh)
{
    // copy ctor
    mShaderProgram = new QOpenGLShaderProgram(this);

    mDebugView = mesh.mDebugView;
    mIndexBuffer = QOpenGLBuffer(mesh.mIndexBuffer);
    mMode = mesh.mMode;
    mTextureImage = mesh.mTextureImage;
    setTextureImage(mTextureImage);

    for (int index = 0; index < mesh.mVertices.count(); index++)
          mVertices.append(mesh.vertices().at(index)) ;

    addMaterial(Material());
    mOpacity = mesh.mOpacity;
}
开发者ID:dridk,项目名称:cutegl,代码行数:18,代码来源:mesh.cpp


示例9: Vector3f

//----------------------------------------------------------------------------------------------
DebugMultiPoly::DebugMultiPoly()
{
    m_origin = Vector3f();
    m_firstColor = Color4f();
    m_timeToLiveSeconds = 0.f;
    m_killNextFrame = false;
    m_shouldBeRemoved = false;
    m_hasTexture = false;
    m_material = Material();
    m_material.m_useVBO = true;
    //m_VBOOffset = 0;
    genVBO();
    //Texture* currTex = new Texture(".\\Data\\cobblestonesDiffuse.png");
    //m_material.m_useVBO = true;
    //m_material.m_useDiffuse = true;
    //m_material.m_useShaderProgram=true;
    ////currMat-._useShaderProgram = true;
    //m_material.m_diffuseID = currTex->m_openGLTextureID;
}
开发者ID:Grindl,项目名称:SD6A2,代码行数:20,代码来源:DebugMultiPoly.cpp


示例10: Id

void TPZBndCond::Clone(std::map<int, TPZAutoPointer<TPZMaterial> > &matvec) {
    int matid = Id();

    TPZAutoPointer<TPZMaterial> refmaterial = Material();
    TPZAutoPointer<TPZMaterial> newrefmaterial;
    int refmatid = 0;
    if(refmaterial) {
        refmaterial->Clone(matvec);
        refmatid = refmaterial->Id();
        newrefmaterial = matvec[refmatid];
    }
    std::map<int, TPZAutoPointer<TPZMaterial> >::iterator matit;
    matit = matvec.find(matid);
    if(matit == matvec.end())
    {
        TPZAutoPointer<TPZMaterial> newmat = TPZAutoPointer<TPZMaterial>(new TPZBndCond(*this, newrefmaterial));
        matvec[matid] = newmat;
    }
}
开发者ID:JoaoFelipe,项目名称:oceano,代码行数:19,代码来源:pzbndcond.cpp


示例11: HR

void Graphics::drawTest(ID3DXMesh* mesh, IDirect3DTexture9* texture, D3DXVECTOR3 position, D3DXVECTOR3 rotation)
{
	HR(mFX->SetTechnique(mhTexTech));

	D3DXMATRIX M;

	float rotY = atan2f(rotation.x, rotation.z);
	D3DXMatrixRotationY(&M, rotY);

	setEffectData(texture, position, Dimensions(500), Material(), 0, M, true);

	HR(mFX->Begin(0, 0));
	HR(mFX->BeginPass(0));

	mesh->DrawSubset(0);

	HR(mFX->EndPass());
	HR(mFX->End());
}
开发者ID:simplerr,项目名称:Project-Invasion,代码行数:19,代码来源:Graphics.cpp


示例12: FindPosInMat

global func FindPosInMat(string sMat, int iXStart, int iYStart, int iWidth, int iHeight, int iSize)
{
	var iX, iY;
	var iMaterial = Material(sMat);
	for(var i = 0; i < 500; i++)
	{
		iX = AbsX(iXStart+Random(iWidth));
		iY = AbsY(iYStart+Random(iHeight));
		if(GetMaterial(iX,iY)==iMaterial &&
		   GetMaterial(iX+iSize,iY+iSize)==iMaterial &&
		   GetMaterial(iX+iSize,iY-iSize)==iMaterial &&
		   GetMaterial(iX-iSize,iY-iSize)==iMaterial &&
		   GetMaterial(iX-iSize,iY+iSize)==iMaterial
		) {
			return [iX, iY]; // Location found.
		}
	}
	return 0; // No location found.
}
开发者ID:ckanibal,项目名称:openclonk,代码行数:19,代码来源:Material.c


示例13: GraphicsInit

bool GraphicsInit()
{
    graphicsEngine = new Renderer();
    scene1 = new Scene("MeshScene", graphicsEngine);
    scene1->addLight(new Light(Material(MaterialWhite),glm::vec4(0.0, 0.0, 10.0, 1.0)));
    
    // Base
    Base =  new ObjLoader	( scene1, NULL, CUBE, None );
    Base->SetMaterial(Material(MaterialSilver));
    Base->SetName(std::string("Base"));
    Base->ScaleLocal(1.5, 0.25, 1.5);
    
    // Stand
    Stand =  new ObjLoader	( scene1, Base, SEMI_HOLLOW_CYLINDER, None );
    Stand->SetMaterial(Material(MaterialSilver));
    Stand->SetName(std::string("Stand"));
    Stand->Translate(0.0, 4.0, 0.0);
    Stand->ScaleLocal(0.5, 4.0, 0.5);
    
    // Motor Shaft
    MotorShaft =  new ObjLoader	( scene1, Stand, CUBE, None );
    MotorShaft->SetMaterial(Material(MaterialSilver));
    MotorShaft->SetName(std::string("MotorShaft"));
    MotorShaft->Translate(0.0, 4.0, 1.0);
    MotorShaft->ScaleLocal(0.5, 0.5, 2.0);
    
    // Motor Engine
    Sphere =  new ObjLoader	( scene1, MotorShaft, SPHERE, None );
    Sphere->SetMaterial(Material(MaterialGold));
    Sphere->Translate(0.0, 0.0, 2.0);
    Sphere->SetName(std::string("Sphere"));
    
    // Fan Blades
    for(int i=0; i<360; i+=360/18){
        CubePlane =  new ObjLoader	( scene1, Sphere, CUBE, None );
        CubePlane->SetMaterial(Material(MaterialCopper));
        CubePlane->SetName(std::string("FanBlade"));
        CubePlane->Translate(0.0, 2.0, 0.0);
        CubePlane->SetCenter(glm::vec3(0.0, -2.0, 0.0));
        CubePlane->ScaleLocal(0.20, 2.0, 0.20);
        CubePlane->Rotate(i, 0.0, 0.0, 1.0);
    }
    scene1->addModel( Base);
    graphicsEngine->initializeScenes();
//    Sphere->SetVisible(!true, true);
//    Sphere->SetVisible(true, !true);
    Base->Rotate(45.0, 0.0, 1.0, 0.0);
//    Sphere->SetVisible(true, true);
    return true;
}
开发者ID:Michael-Lfx,项目名称:OpenGL-ES-3.0-Cookbook,代码行数:50,代码来源:NativeTemplate.cpp


示例14: TEXT

UMaterial* UGTCaptureComponent::GetMaterial(FString InModeName = TEXT(""))
{
	// Load material for visualization
	static TMap<FString, FString>* MaterialPathMap = nullptr;
	if (MaterialPathMap == nullptr)
	{
		MaterialPathMap = new TMap<FString, FString>();
		MaterialPathMap->Add(TEXT("depth"), TEXT("Material'/UnrealCV/SceneDepthWorldUnits.SceneDepthWorldUnits'"));
    MaterialPathMap->Add(TEXT("plane_depth"), TEXT("Material'/UnrealCV/ScenePlaneDepthWorldUnits.ScenePlaneDepthWorldUnits'"));
		MaterialPathMap->Add(TEXT("vis_depth"), TEXT("Material'/UnrealCV/SceneDepth.SceneDepth'"));
		MaterialPathMap->Add(TEXT("debug"), TEXT("Material'/UnrealCV/debug.debug'"));
		// MaterialPathMap->Add(TEXT("object_mask"), TEXT("Material'/UnrealCV/VertexColorMaterial.VertexColorMaterial'"));
		MaterialPathMap->Add(TEXT("normal"), TEXT("Material'/UnrealCV/WorldNormal.WorldNormal'"));

		FString OpaqueMaterialName = "Material'/UnrealCV/OpaqueMaterial.OpaqueMaterial'";
		MaterialPathMap->Add(TEXT("opaque"), OpaqueMaterialName);
	}

	static TMap<FString, UMaterial*>* StaticMaterialMap = nullptr;
	if (StaticMaterialMap == nullptr)
	{
		StaticMaterialMap = new TMap<FString, UMaterial*>();
		for (auto& Elem : *MaterialPathMap)
		{
			FString ModeName = Elem.Key;
			FString MaterialPath = Elem.Value;
			ConstructorHelpers::FObjectFinder<UMaterial> Material(*MaterialPath); // ConsturctorHelpers is only available for UObject.

			if (Material.Object != NULL)
			{
				StaticMaterialMap->Add(ModeName, (UMaterial*)Material.Object);
			}
		}
	}

	UMaterial* Material = StaticMaterialMap->FindRef(InModeName);
	if (Material == nullptr)
	{
		UE_LOG(LogUnrealCV, Warning, TEXT("Can not recognize visualization mode %s"), *InModeName);
	}
	return Material;
}
开发者ID:Batname,项目名称:unrealcv,代码行数:42,代码来源:GTCaptureComponent.cpp


示例15: draw_template_

LeafSystem::LeafSystem(const Mesh& mesh, TextureType texture_type, const glm::vec3& origin, int numParticles) : 
            draw_template_({
                  ShaderType::DEFERRED,
                  mesh, 
                  Material(),
                  Texture(texture_type, DIFFUSE_TEXTURE),
                  boost::none,
                  EffectSet({EffectType::CASTS_SHADOW, EffectType::CASTS_REFLECTION})
                  }),
            origin_(origin),
            scale_(0.7f),
            velocity_(glm::vec3(0.0f, -0.00001f, 0.0f)),
            acceleration_(glm::vec3(0.0f, -0.000001f, 0.0f)) {
               for (int i = 0; i < numParticles; i++) {
                  glm::vec3 randVec = getRandomVec();
                  float randAngle = static_cast <float> (rand()) / (static_cast <float> (RAND_MAX / ROT_MAX));
                  particles_.push_back(Particle(glm::vec3(origin_.x + randVec.x, origin_.y + randVec.y, origin_.z + randVec.z), 
                              scale_, randAngle, velocity_,  acceleration_));
               }
            }
开发者ID:Ethanmn,项目名称:CPE476Final,代码行数:20,代码来源:leaf_system.cpp


示例16: AddFloorYZ_xUp

TestScene::TestScene()
{
  auto tex = -1;// ImageHandler::GetInstance().LoadFromFile("input_data/chino.jpg", true);

  //AddObject(new Sphere(1e5, Vector3(1e5 + 1, 40.8, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.25, 0.25), 0.0, tex)), true, false);  // 左
  AddFloorYZ_xUp(200, 200, Vector3(1, 40.8, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.25, 0.25), 0.0)); // 左
  //AddObject(new Sphere(1e5, Vector3(-1e5 + 99, 40.8, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.25, 0.25, 0.75), tex)), true, false);  // 右
  AddFloorYZ_xDown(200, 200, Vector3(99, 40.8, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.25, 0.25, 0.75), 0.0)); // 右
  //AddObject(new Sphere(1e5, Vector3(50, 40.8, 1e5), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.75, 0.75))), true, false);  // 奥
  AddFloorXY_zUp(150, 150/1.77777777777, Vector3(50, 40.8, 0), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(1, 1, 1), 0.0, tex));  // 奥
  //AddObject(new Sphere(1e5, Vector3(50, 40.8, -1e5 + 250), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color())), true, false);                  // 手前
  AddFloorXY_zDown(150, 150 / 1.77777777777, Vector3(50, 40.8, 250), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.75, 0.75), 0.0, tex));  // 手前
  //AddObject(new Sphere(1e5, Vector3(50, 1e5, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.75, 0.75))), true, false);  // 下
  AddFloorXZ_yUp(200, 200, Vector3(50, 0, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.75, 0.75)));
  //AddObject(new Sphere(1e5, Vector3(50, -1e5 + 81.6, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.75, 0.75))), true, false);  // 上
  AddFloorXZ_yDown(200, 200, Vector3(50, 81.6, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(), Color(0.75, 0.75, 0.75)));

  m_ibl.reset(new IBL("input_data/Barce_Rooftop_C_Env.hdr"));
 
  Model *cube = new Model;
  //if (!cube->ReadFromObj("input_data/Cargo_ship/OBJ/msmunchen_visualstudio.obj", true)) {
  if (!cube->ReadFromObj("input_data/shrine.obj", true)) {
    std::cerr << "failed to load cube.obj!!!" << std::endl;
    getchar();
    exit(-1);
  }
  //cube->Transform(Vector3(50, 30, 50), Vector3(10, 10, 10), Matrix::RotateAroundVector(Vector3(0, 1, 0), 45.0 / 180 * PI));
  //cube->Transform(Vector3(50, 10, 50), Vector3(6, 6, 6), Matrix::RotateAroundVector(Vector3(0, 1, 0), 30.0 / 180 * PI));
  //cube->Transform(Vector3(50, 5, 70), Vector3(0.05, 0.05, 0.05), Matrix::RotateAroundVector(Vector3(0, 1, 0), 15.0 / 180 * PI));
  cube->Transform(Vector3(27, 16.5, 47), Vector3(2, 2, 2), Matrix::RotateAroundVector(Vector3(0, 1, 0), 0 / 180 * PI));
  AddModel(cube, true, true);
  
  //AddObject(new Sphere(10,Vector3(),           Material(Material::REFLECTION_TYPE_LAMBERT,    Color(), Color(0.25, 0.75, 0.25))));    // 緑球
  //AddObject(new Sphere(16.5,Vector3(27, 16.5, 47),       Material(Material::REFLECTION_TYPE_SPECULAR,   Color(), Color(0.99, 0.99, 0.99))));   // 鏡
  //AddObject(new Sphere(16.5,Vector3(77, 16.5, 78),       Material(Material::REFLECTION_TYPE_REFRACTION, Color(), Color(0.99, 0.99, 0.99), REFRACTIVE_INDEX_OBJECT))); // ガラス


  //SphereLight *sphereLight = new SphereLight(7.5, Vector3(50.0, 72.5, 61.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(26, 26, 26), Color()));
  SphereLight *sphereLight = new SphereLight(15, Vector3(50.0, 90, 81.6), Material(Material::REFLECTION_TYPE_LAMBERT, Color(36, 36, 36), Color()));
  AddObject(sphereLight, true, false);    // 照明

  //ConstructBVH();
  ConstructQBVH();
}
开发者ID:omochi64,项目名称:omochi-renderer2,代码行数:44,代码来源:TestScene.cpp


示例17: CreateMaterial

int XFileLoader::CreateMaterial(const string& materialName, vec4 diffuse, vec4 specular, const string& textureFilename)
{
	if (m_materialLookup.find(materialName) != m_materialLookup.end())
		return m_materialLookup[materialName];
    int materialIdx = m_materials.size();
    m_materials.emplace_back(std::move(Material()));
	Material::MaterialData data = { diffuse, specular };
	m_materials[materialIdx].setMaterialData(data);
	m_materialLookup.insert(make_pair(move(materialName), materialIdx));
	if (!textureFilename.empty())
	{
        string fname(textureFilename.begin(), textureFilename.end());
        m_materials[materialIdx].setDiffuseTexture(move(VBGL::Texture2D::loadTexture(fname)));
		auto ext = fname.rfind(L'.');
        if (ext == fname.npos)
            THROW_EXCEPTION_T("Parsing error", ParsingException);
        string specName = fname.substr(0, ext) + "_Specular" + fname.substr(ext);
        m_materials[materialIdx].setSpecularTexture(move(VBGL::Texture2D::loadTexture(specName)));
	}
	return materialIdx;
}
开发者ID:kamillys,项目名称:IN_SDL_Demo,代码行数:21,代码来源:mini_xfileLoader.cpp


示例18: assert

int WriterNodeVisitor::processStateSet(osg::StateSet* ss)
{
    MaterialMap::const_iterator itr = _materialMap.find(ss);
    if (itr != _materialMap.end())
    {
        assert(itr->second.index>=0);
        return itr->second.index;
    }

    osg::Material* mat = dynamic_cast<osg::Material*>(ss->getAttribute(osg::StateAttribute::MATERIAL));
    osg::Texture* tex = dynamic_cast<osg::Texture*>(ss->getTextureAttribute(0, osg::StateAttribute::TEXTURE));

    if (mat || tex)
    {
        int matNum = _lastMaterialIndex;
        _materialMap.insert(std::make_pair(osg::ref_ptr<osg::StateSet>(ss), Material(*this, ss, mat, tex, _preserveMaterialNames, matNum) ));
        ++_lastMaterialIndex;
        return matNum;
    }
    return -1;
}
开发者ID:artoolkit,项目名称:osg,代码行数:21,代码来源:WriterNodeVisitor.cpp


示例19: main

int main() {
	// Initiatisation
	glm::ivec2 screenSize = glm::ivec2(400, 300);
	// -- Camera
	Camera cam = Camera(70.f, screenSize, 1);
	cam.LookAt(glm::vec3(50,52,295.6), glm::vec3(50,52,295.6) + glm::vec3(0,0.0,-1));

	// -- Scene
	Scene sc;
//	Sphere(1e5, Vec( 1e5+1,40.8,81.6), Vec(),Vec(.75,.25,.25),DIFF),//Left
//	Sphere(1e5, Vec(-1e5+99,40.8,81.6),Vec(),Vec(.25,.25,.75),DIFF),//Rght
//	Sphere(1e5, Vec(50,40.8, 1e5),     Vec(),Vec(.75,.75,.75),DIFF),//Back
//	Sphere(1e5, Vec(50,40.8,-1e5+170), Vec(),Vec(),           DIFF),//Frnt
//	Sphere(1e5, Vec(50, 1e5, 81.6),    Vec(),Vec(.75,.75,.75),DIFF),//Botm
//	Sphere(1e5, Vec(50,-1e5+81.6,81.6),Vec(),Vec(.75,.75,.75),DIFF),//Top

	sc.AddPrimitive(
			new Sphere(glm::vec3(1e5 + 1, 40.8, 81.6), 1e5,
					Material(glm::vec3(.75, .25, .25))));
	sc.AddPrimitive(
			new Sphere(glm::vec3(-1e5 + 99, 40.8, 81.6), 1e5,
					Material(glm::vec3(.25, .25, .75))));
	sc.AddPrimitive(
			new Sphere(glm::vec3(50,40.8, 1e5), 1e5,
					Material(glm::vec3(.75, .75, .75))));
	sc.AddPrimitive(
			new Sphere(glm::vec3(50, 40.8, -1e5 + 250), 1e5,
					Material(glm::vec3(.75, .75, .75))));
	sc.AddPrimitive(
			new Sphere(glm::vec3(50, 1e5, 81.6), 1e5,
					Material(glm::vec3(.75, .75, .75))));
	sc.AddPrimitive(
			new Sphere(glm::vec3(50,-1e5+81.6,81.6), 1e5,
					Material(glm::vec3(.75, .75, .75))));

	sc.AddLight(new PointLight(glm::vec3(50,52,240)));

	// -- Screne
	Screen screen(screenSize);
	// Ray generation
	for (int x = 0; x < screenSize.x; x++)
		for (int y = 0; y < screenSize.y; y++) {
			glm::vec3 colorFinal = sc.ComputeColor(cam.GetRay(x,y));
			screen.Store(x, y, colorFinal*100.f);
		}
	screen.SaveToPGM("out.pgm");
	return 0;
}
开发者ID:beltegeuse,项目名称:RayTracing,代码行数:48,代码来源:main.cpp


示例20: Material

    const Geometry::Material& MaterialManager::materialAt(const DDSurfaces::Vector3D& pos ){

      if( pos != _pos ) {
	
	TGeoNode *node=_tgeoMgr->FindNode( pos[0], pos[1], pos[2] ) ;
	
	if( ! node ) {
	  std::stringstream err ;
	  err << " MaterialManager::material: No geometry node found at location: " << pos ;
	  throw std::runtime_error( err.str() );
	}

	//	std::cout << " @@@ MaterialManager::material @ " << pos << " found volume : " << node->GetName() << std::endl ;

	_m = Material( node->GetMedium() ) ;
	
	_pos = pos ;
      }

      return _m ; ;
    }
开发者ID:vvolkl,项目名称:DD4hep,代码行数:21,代码来源:MaterialManager.cpp



注:本文中的Material函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ READ_INT_FIELD函数代码示例发布时间:2022-05-31
下一篇:
C++ MatSetSizes函数代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap