本文整理汇总了C#中GraphicFactory.GetTexture2D方法的典型用法代码示例。如果您正苦于以下问题:C# GraphicFactory.GetTexture2D方法的具体用法?C# GraphicFactory.GetTexture2D怎么用?C# GraphicFactory.GetTexture2D使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GraphicFactory
的用法示例。
在下文中一共展示了GraphicFactory.GetTexture2D方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
{
SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario");
TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial());
ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
ForwardMaterial fmaterial = new ForwardMaterial(shader);
IObject obj = new IObject(fmaterial, simpleModel, tmesh);
this.World.AddObject(obj);
}
///using component
Billboard3D Billboard3D = new Billboard3D(factory.GetTexture2D("Textures\\grama1"), new Vector3(100, 20, 100), Vector2.One * 0.2f);
BillboardComponent.Billboards.Add(Billboard3D);
///using old mode (IObject billboard)
{
List<Billboard> poss = new List<Billboard>();
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
float x, y;
x = i * 10;
y = j * 10;
poss.Add(
new Billboard()
{
Position = new Vector3(x, 50 , y),
Scale = Vector2.One * 0.01f,
Enabled = true
}
);
}
}
CPUBillboardModel bm = new CPUBillboardModel(factory, "Bilbs", "..\\Content\\Textures\\tree", poss.ToArray());
ForwardAlphaTestShader cb = new ForwardAlphaTestShader(128,CompareFunction.GreaterEqual);
ForwardMaterial matfor = new ForwardMaterial(cb);
matfor.RasterizerState = RasterizerState.CullNone;
GhostObject go = new GhostObject();
IObject obj2 = new IObject(matfor, bm, go);
this.World.AddObject(obj2);
//Text Billboards
TextBillboard3D TextBillboard3D = new TextBillboard3D("TEST 123 SPHERICAL", Color.Black, new Vector3(100), 0.5f);
sBillboardComponent.Billboards.Add(TextBillboard3D);
TextBillboard3D = new TextBillboard3D("TEST 123 Cylinder", Color.Black, new Vector3(200, 50, 200), 0.5f);
cBillboardComponent.Billboards.Add(TextBillboard3D);
}
this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo));
}
示例2: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
CameraFirstPerson CameraFirstPerson = new CameraFirstPerson(true, GraphicInfo);
Texture2D tMap = factory.GetTexture2D("Textures//hmap_10243");
QuadTerrain q = new PloobsEngine.Material.QuadTerrain(factory, tMap, 33, 513, 10, 3f);
DeferredTerrainMaterial mat = new DeferredTerrainMaterial(q);
//Set various terrain stats.
mat.diffuseScale = q.flatScale / 4;
mat.detailScale = q.flatScale / 100;
mat.detailMapStrength = 2;
mat.textureBlend = factory.GetTexture2D("Textures//hmap_256blend");
mat.textureDetail = factory.GetTexture2D("Textures//coolgrass2DOT3");
mat.textureRed = factory.GetTexture2D("Textures//TexR");
mat.textureGreen = factory.GetTexture2D("Textures//TexG");
mat.textureBlue = factory.GetTexture2D("Textures//TexB");
mat.textureBlack = factory.GetTexture2D("Textures//TexBase");
TerrainObject to = new TerrainObject(factory,Vector3.Zero, Matrix.Identity, q.getHeightMap() ,MaterialDescription.DefaultBepuMaterial());
IObject obj3 = new IObject(mat, null, to);
this.World.AddObject(obj3);
LightThrowBepu lt = new LightThrowBepu(this.World, factory);
#region NormalLight
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.5f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
this.World.CameraManager.AddCamera(CameraFirstPerson);
CameraFirstPerson.FarPlane = 20000;
SkyBoxSetTextureCube stc = new SkyBoxSetTextureCube("Textures//cubemap");
CommandProcessor.getCommandProcessor().SendCommandAssyncronous(stc);
}
示例3: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
{
SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario");
TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial());
ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
ForwardMaterial fmaterial = new ForwardMaterial(shader);
IObject obj = new IObject(fmaterial, simpleModel, tmesh);
this.World.AddObject(obj);
}
SphericalBillboard3D Billboard3D = new SphericalBillboard3D(factory.GetTexture2D("Textures\\goo"), new Vector3(100, 20, 100), Vector2.One * 0.2f);
BillboardComponent.Billboards.Add(Billboard3D);
this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo));
}
示例4: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
{
base.LoadContent(GraphicInfo,factory, contentManager);
SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario");
simpleModel.SetTexture(factory.GetTexture2D("textures/islandmap2"), TextureType.DIFFUSE);
TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial());
DeferredNormalShader shader = new DeferredNormalShader();
DeferredMaterial fmaterial = new DeferredMaterial(shader);
IObject obj = new IObject(fmaterial, simpleModel, tmesh);
this.World.AddObject(obj);
this.RenderTechnic.AddPostEffect(new GammaCorrectionPostEffect(GammaType.Normal));
#region NormalLight
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.5f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
this.World.CameraManager.AddCamera(new CameraFirstPerson(true,GraphicInfo));
SkyBoxSetTextureCube stc = new SkyBoxSetTextureCube("Textures//cubeMapGamma");
CommandProcessor.getCommandProcessor().SendCommandAssyncronous(stc);
}
示例5: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
LightProbeReader LightProbeReader = new EngineTestes.LightProbeReader(factory.GetTexture2D("Textures\\probe"));
Sampler Sampler = new EngineTestes.Sampler(100,3);
MonteCarlo MonteCarlo = new EngineTestes.MonteCarlo();
MonteCarlo.ProjectLight(LightProbeReader, Sampler);
{
SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario");
TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial());
ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
ForwardMaterial fmaterial = new ForwardMaterial(shader);
IObject obj = new IObject(fmaterial, simpleModel, tmesh);
this.World.AddObject(obj);
}
this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo));
}
示例6: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
CameraFirstPerson CameraFirstPerson = new CameraFirstPerson(true, GraphicInfo);
Texture2D tMap = factory.GetTexture2D("Textures//hmap_10243");
QuadTerrain q = new PloobsEngine.Material.QuadTerrain(factory, tMap, 33, 513, 10, 3f);
ForwardTerrainMaterial mat = new ForwardTerrainMaterial(q);
//Set various terrain stats.
mat.diffuseScale = q.flatScale / 4;
mat.detailScale = q.flatScale / 100;
mat.detailMapStrength = 2;
mat.textureBlend = factory.GetTexture2D("Textures//hmap_256blend");
mat.textureDetail = factory.GetTexture2D("Textures//coolgrass2DOT3");
mat.textureRed = factory.GetTexture2D("Textures//TexR");
mat.textureGreen = factory.GetTexture2D("Textures//TexG");
mat.textureBlue = factory.GetTexture2D("Textures//TexB");
mat.textureBlack = factory.GetTexture2D("Textures//TexBase");
mat.sunlightVector = Vector3.Normalize(new Vector3(.5f, .5f, .8f));
mat.sunlightColour = new Vector3(2.3f, 2f, 1.8f);
TerrainObject to = new TerrainObject(factory,Vector3.Zero, Matrix.Identity, q.getHeightMap() ,MaterialDescription.DefaultBepuMaterial());
IObject obj3 = new IObject(mat, null, to);
this.World.AddObject(obj3);
LightThrowBepu lt = new LightThrowBepu(this.World, factory);
this.World.CameraManager.AddCamera(CameraFirstPerson);
CameraFirstPerson.FarPlane = 20000;
SkyBoxSetTextureCube stc = new SkyBoxSetTextureCube("Textures//cubemap");
CommandProcessor.getCommandProcessor().SendCommandAssyncronous(stc);
}
示例7: Load
//.........这里部分代码省略.........
Model model = factory.GetModel(modelPath + Name);
modelNames.Add(modelPath + Name);
Matrix[] m = new Matrix[model.Bones.Count];
model.CopyAbsoluteBoneTransformsTo(m);
////////////EXTRAINDO MESHES
for (int i = 0; i < model.Meshes.Count; i++)
{
String name = model.Meshes[i].Name.Substring(5);
if (infos.ContainsKey(name))
{
for (int j = 0; j < model.Meshes[i].MeshParts.Count; j++)
{
XmlModelMeshInfo inf = infos[name];
Matrix tr = m[model.Meshes[i].ParentBone.Index];
Vector3 scale;
Vector3 pos;
Quaternion ori;
tr.Decompose(out scale, out ori, out pos);
ObjectInformation mi = new ObjectInformation();
mi.modelName = inf.modelName;
mi.meshPartIndex = j;
mi.meshIndex = i;
mi.position = pos;
mi.scale = scale;
mi.rotation = ori;
ModelBuilderHelper.Extract(m, model.Meshes[i].MeshParts[j], out mi.batchInformation);
mi.ellasticity = inf.ellasticity;
mi.dinamicfriction = inf.dinamicfriction;
mi.staticfriction = inf.staticfriction;
mi.collisionType = inf.collisionType;
mi.mass = inf.mass;
mi.batchInformation.ModelLocalTransformation = m[model.Meshes[i].ParentBone.Index];
mi.textureInformation = new TextureInformation(false, factory);
if (inf.material.reflectionName != null)
{
mi.textureInformation.SetCubeTexture(factory.GetTextureCube(texturePath + inf.material.reflectionName), TextureType.ENVIRONMENT);
texturesNames.Add(texturePath + inf.material.reflectionName);
}
else
{
if (inf.material.difuseName != null)
{
mi.textureInformation.SetTexture(factory.GetTexture2D(texturePath + inf.material.difuseName), TextureType.DIFFUSE);
texturesNames.Add(texturePath + inf.material.difuseName);
}
if (inf.material.glowName != null)
{
mi.textureInformation.SetTexture(factory.GetTexture2D(texturePath + inf.material.glowName), TextureType.GLOW);
texturesNames.Add(texturePath + inf.material.glowName);
}
if (inf.material.specularName != null)
{
mi.textureInformation.SetTexture(factory.GetTexture2D(texturePath + inf.material.specularName), TextureType.SPECULAR);
texturesNames.Add(texturePath + inf.material.specularName);
}
if (inf.material.bumpName != null)
{
mi.textureInformation.SetTexture(factory.GetTexture2D(texturePath + inf.material.bumpName), TextureType.BUMP);
texturesNames.Add(texturePath + inf.material.bumpName);
}
}
if (inf.collisionType != null)
{
if (inf.collisionType.Contains("Water"))
{
mi.extra = inf.material.extrainformation;
}
}
mi.textureInformation.LoadTexture();
elements.ModelMeshesInfo.Add(mi);
}
}
}
SerializerHelper.ChangeDecimalSymbolToSystemDefault();
//Clear Stuffs
infos.Clear();
targets.Clear();
spotLights.Clear();
cameras.Clear();
return elements;
}
示例8: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
{
PhysxPhysicWorld PhysxPhysicWorld = World.PhysicWorld as PhysxPhysicWorld;
base.LoadContent(GraphicInfo, factory, contentManager);
const int maximumParticles = 1000;
var fluidEmitterDesc = new FluidEmitterDescription()
{
DimensionX = 0.5f,
DimensionY = 0.5f,
Rate = 15,
RelativePose =
Phyx.Matrix.RotationAxis(new Phyx.Vector3(0, 1, 0), (float)Math.PI) *
Phyx.Matrix.Translation(-40, 10, -50),
Shape = EmitterShape.Rectangular,
Type = EmitterType.ConstantFlowRate,
RandomAngle = 0.5f
};
fluidEmitterDesc.Flags |= (FluidEmitterFlag.Enabled | FluidEmitterFlag.Visualization);
var fluidDesc = new FluidDescription()
{
Emitters = { fluidEmitterDesc },
Flags = FluidFlag.Enabled | FluidFlag.Visualization | FluidFlag.Enabled,
MaximumParticles = maximumParticles,
};
fluidDesc.ParticleWriteData.AllocatePositionBuffer<Vector3>(maximumParticles);
fluidDesc.ParticleWriteData.NumberOfParticles = maximumParticles;
fluid = PhysxPhysicWorld.Scene.CreateFluid(fluidDesc);
Texture2D tex = factory.GetTexture2D("Textures/Smoke");
for (int i = 0; i < maximumParticles; i++)
{
Billboard3D Billboard3D = new Billboard3D(tex,Vector3.Zero,new Vector2(0.002f));
Billboard3D.Enabled = false;
CPUSphericalBillboardComponent.Billboards.Add(Billboard3D);
}
// Ledge
{
var boxShapeDesc = new BoxShapeDescription(5, 0.1f, 5);
SimpleModel SimpleModel = new PloobsEngine.Modelo.SimpleModel(factory, "Model/block");
SimpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Red), TextureType.DIFFUSE);
PhysxPhysicObject PhysxPhysicObject = new PloobsEngine.Physics.PhysxPhysicObject(boxShapeDesc,
(Phyx.Matrix.RotationX(-0.5f) * Phyx.Matrix.Translation(-40, 5, -52)).AsXNA(),new Vector3(5,0.1f,5));
ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
ForwardMaterial fmaterial = new ForwardMaterial(shader);
IObject obj = new IObject(fmaterial, SimpleModel, PhysxPhysicObject);
this.World.AddObject(obj);
}
// Drain
{
var boxShapeDesc = new BoxShapeDescription(5, 0.1f, 5);
boxShapeDesc.Flags |= ShapeFlag.FluidDrain;
var drainActorDesc = new ActorDescription()
{
GlobalPose = Phyx.Matrix.Translation(-40, 0, -55),
Shapes = { boxShapeDesc }
};
var drianActor = PhysxPhysicWorld.Scene.CreateActor(drainActorDesc);
}
BallThrowPhysx28 BallThrowBullet = new BallThrowPhysx28(this.World, GraphicFactory);
this.AttachCleanUpAble(BallThrowBullet);
this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo));
}
示例9: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory, IContentManager contentManager)
{
base.LoadContent(GraphicInfo, factory, contentManager);
{
SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario");
TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial());
DeferredNormalShader shader = new DeferredNormalShader();
DeferredMaterial fmaterial = new DeferredMaterial(shader);
IObject obj = new IObject(fmaterial, simpleModel, tmesh);
this.World.AddObject(obj);
}
#region NormalLight
DirectionalLightPE ld1 = new DirectionalLightPE(Vector3.Left, Color.White);
DirectionalLightPE ld2 = new DirectionalLightPE(Vector3.Right, Color.White);
DirectionalLightPE ld3 = new DirectionalLightPE(Vector3.Backward, Color.White);
DirectionalLightPE ld4 = new DirectionalLightPE(Vector3.Forward, Color.White);
DirectionalLightPE ld5 = new DirectionalLightPE(Vector3.Down, Color.White);
float li = 0.5f;
ld1.LightIntensity = li;
ld2.LightIntensity = li;
ld3.LightIntensity = li;
ld4.LightIntensity = li;
ld5.LightIntensity = li;
this.World.AddLight(ld1);
this.World.AddLight(ld2);
this.World.AddLight(ld3);
this.World.AddLight(ld4);
this.World.AddLight(ld5);
#endregion
CameraFirstPerson cam = new CameraFirstPerson(GraphicInfo);
//cam.FarPlane = 100;
this.World.CameraManager.AddCamera(cam);
lt = new LightThrowBepu(this.World, factory);
{
///Add Decal To the Decal Component
///Texture
Texture2D texture = factory.GetTexture2D("Textures//goo");
///The projection Matrix
var projection = Matrix.CreatePerspectiveFieldOfView(cam.FieldOfView / 20, cam.AspectRatio, 1, 2000);
///The view Matrix
var view = Matrix.CreateLookAt(
new Vector3(500, 300, 200),
new Vector3(0, 0, 0),
Vector3.Up
);
Decal decal = new Decal(texture, view, projection);
DecalComponent.Decals.Add(decal);
}
{
///Add Decal To the Decal Component
///Texture
Texture2D texture = factory.GetTexture2D("Textures//goo");
///The projection Matrix
var projection = Matrix.CreatePerspectiveFieldOfView(cam.FieldOfView / 10, cam.AspectRatio, 1, 2000);
///The view Matrix
var view = Matrix.CreateLookAt(
new Vector3(500, 500, 700),
new Vector3(-200, 50, -10),
Vector3.Up
);
Decal decal = new Decal(texture, view, projection);
DecalComponent.Decals.Add(decal);
}
SkyBoxSetTextureCube stc = new SkyBoxSetTextureCube("Textures//grasscube");
CommandProcessor.getCommandProcessor().SendCommandAssyncronous(stc);
}
示例10: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
{
PhysxPhysicWorld PhysxPhysicWorld = World.PhysicWorld as PhysxPhysicWorld;
base.LoadContent(GraphicInfo, factory, contentManager);
const int maximumParticles = 3000;
///Remember
///There are 2 math apis (XNA AND PHYSX)
///Sometimes we need to convert between then
///Use the extension methods AsPhysx() in XNA API and AsXNA in Physx APi
///emitter
var fluidEmitterDesc = new FluidEmitterDescription()
{
DimensionX = 1.5f,
DimensionY = 1.5f,
Rate = 65,
RelativePose =
Phyx.Matrix.RotationAxis(new Phyx.Vector3(0, 1, 0), (float)Math.PI) *
Phyx.Matrix.Translation(-40, 10, -50),
Shape = EmitterShape.Rectangular,
Type = EmitterType.ConstantFlowRate,
RandomAngle = 0.5f,
};
fluidEmitterDesc.Flags |= (FluidEmitterFlag.Enabled | FluidEmitterFlag.Visualization);
///fluid
var fluidDesc = new FluidDescription()
{
Emitters = { fluidEmitterDesc },
Flags = FluidFlag.Enabled | FluidFlag.Visualization,
MaximumParticles = maximumParticles,
};
fluidDesc.ParticleWriteData.AllocatePositionBuffer<Vector3>(maximumParticles);
fluidDesc.ParticleWriteData.NumberOfParticles = maximumParticles;
///create and add the fluid to the world
fluid = PhysxPhysicWorld.Scene.CreateFluid(fluidDesc);
///Use Billboards to render the fuild particles (dummy way)
Texture2D tex = factory.GetTexture2D("Textures/Smoke");
for (int i = 0; i < maximumParticles; i++)
{
Billboard3D Billboard3D = new Billboard3D(tex,Vector3.Zero,new Vector2(0.001f));
Billboard3D.Enabled = false;
CPUSphericalBillboardComponent.Billboards.Add(Billboard3D);
}
// Ledge
{
var boxShapeDesc = new BoxShapeDescription(5, 0.1f, 5);
SimpleModel SimpleModel = new PloobsEngine.Modelo.SimpleModel(factory, "Model/block");
SimpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Red), TextureType.DIFFUSE);
PhysxPhysicObject PhysxPhysicObject = new PloobsEngine.Physics.PhysxPhysicObject(boxShapeDesc,
(Phyx.Matrix.RotationX(-0.5f) * Phyx.Matrix.Translation(-40, 5, -52)).AsXNA(),new Vector3(5,0.1f,5));
ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default());
ForwardMaterial fmaterial = new ForwardMaterial(shader);
IObject obj = new IObject(fmaterial, SimpleModel, PhysxPhysicObject);
this.World.AddObject(obj);
}
// Drain
{
var boxShapeDesc = new BoxShapeDescription(5, 0.1f, 5);
boxShapeDesc.Flags |= ShapeFlag.FluidDrain;
var drainActorDesc = new ActorDescription()
{
GlobalPose = Phyx.Matrix.Translation(-40, -20, -55),
Shapes = { boxShapeDesc }
};
var drianActor = PhysxPhysicWorld.Scene.CreateActor(drainActorDesc);
}
BallThrowPhysx28 BallThrowBullet = new BallThrowPhysx28(this.World, GraphicFactory);
BallThrowBullet.ballSize = 1f;
BallThrowBullet.Speed = 25;
this.AttachCleanUpAble(BallThrowBullet);
CameraFirstPerson CameraFirstPerson = new CameraFirstPerson(GraphicInfo);
CameraFirstPerson.Position = new Vector3(-35, 8, -52);
CameraFirstPerson.LeftRightRot = MathHelper.ToRadians(125);
this.World.CameraManager.AddCamera(CameraFirstPerson);
}
示例11: LoadContent
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory ,IContentManager contentManager)
{
PhysxPhysicWorld PhysxPhysicWorld = World.PhysicWorld as PhysxPhysicWorld;
base.LoadContent(GraphicInfo, factory, contentManager);
Texture2D tMap = factory.GetTexture2D("Textures//hmap_10243");
QuadTerrain q = new PloobsEngine.Material.QuadTerrain(factory, tMap, 33, 513, 10, 3f);
ForwardTerrainMaterial mat = new ForwardTerrainMaterial(q);
//Set various terrain stats.
mat.diffuseScale = q.flatScale / 4;
mat.detailScale = q.flatScale / 100;
mat.detailMapStrength = 2;
mat.textureBlend = factory.GetTexture2D("Textures//hmap_256blend");
mat.textureDetail = factory.GetTexture2D("Textures//coolgrass2DOT3");
mat.textureRed = factory.GetTexture2D("Textures//TexR");
mat.textureGreen = factory.GetTexture2D("Textures//TexG");
mat.textureBlue = factory.GetTexture2D("Textures//TexB");
mat.textureBlack = factory.GetTexture2D("Textures//TexBase");
mat.sunlightVector = Vector3.Normalize(new Vector3(.5f, .5f, .8f));
mat.sunlightColour = new Vector3(2.3f, 2f, 1.8f);
float[,] f = q.getHeightMap();
int v = 513;
var samples = new HeightFieldSample[v * v];
for (int r = 0; r < v; r++)
{
for (int c = 0; c < v ; c++)
{
var sample = new HeightFieldSample()
{
Height = (short)f[r, c],
//Height = 5,
TessellationFlag = 1,
MaterialIndex0 = 1,
MaterialIndex1 = 0
};
samples[r * v + c] = sample;
}
}
var heightFieldDesc = new HeightFieldDescription()
{
NumberOfRows = v,
NumberOfColumns = v,
ConvexEdgeThreshold = 0f,
};
heightFieldDesc.SetSamples(samples);
var heightField = PhysxPhysicWorld.Core.CreateHeightField(heightFieldDesc);
heightFieldDesc.Dispose();
var heightFieldShapeDesc = new HeightFieldShapeDescription()
{
HeightField = heightField,
HeightScale = 1.0f,
RowScale = 1,
ColumnScale = 1,
};
heightFieldShapeDesc.LocalPose = StillDesign.PhysX.MathPrimitives.Matrix.Identity;
var actorDesc = new ActorDescription()
{
GlobalPose = Matrix.Identity.AsPhysX(),
Shapes = { heightFieldShapeDesc },
};
actor = PhysxPhysicWorld.Scene.CreateActor(actorDesc);
IObject obj3 = new IObject(mat, null, new PhysxGhostObject());
this.World.AddObject(obj3);
BallThrowPhysx28 BallThrowBullet = new BallThrowPhysx28(this.World, GraphicFactory);
this.AttachCleanUpAble(BallThrowBullet);
CameraFirstPerson CameraFirstPerson = new CameraFirstPerson(GraphicInfo);
CameraFirstPerson.FarPlane = 20000;
this.World.CameraManager.AddCamera(CameraFirstPerson);
}
示例12: Init
public override void Init(GraphicInfo ginfo, GraphicFactory factory)
{
effect = factory.GetEffect("Effects/mlaa");
pass = factory.GetEffect("Effects/Effect1");
rt0 = factory.CreateRenderTarget(ginfo.BackBufferWidth, ginfo.BackBufferHeight);
rt1 = factory.CreateRenderTarget(ginfo.BackBufferWidth, ginfo.BackBufferHeight);
tex = factory.GetTexture2D("AA//AreaMap65");
pass.Parameters["halfPixel"].SetValue(ginfo.HalfPixel);
effect.Parameters["halfPixel"].SetValue(ginfo.HalfPixel);
}
示例13: TerrainObject
/// <summary>
/// Create a Terrain Physic Object
/// </summary>
/// <param name="gfactory">The gfactory.</param>
/// <param name="heighmapName">Name of the heighmap texture</param>
/// <param name="translation">The translation.</param>
/// <param name="rotation">The rotation.</param>
/// <param name="materialDesc">The material desc.</param>
/// <param name="XSpacing">The X spacing.</param>
/// <param name="ZSpacing">The Z spacing.</param>
/// <param name="heightMultipler">Default 10 - controla a altura, menor mais alto</param>
public TerrainObject(GraphicFactory gfactory, String heighmapName, Vector3 translation, Matrix? rotation = null, MaterialDescription materialDesc = null, float XSpacing = 1, float ZSpacing = 1, float heightMultipler = 10)
{
if (!rotation.HasValue)
rotation = Matrix.Identity;
if (materialDecription == null)
materialDecription = MaterialDescription.DefaultBepuMaterial();
//Used to calculate ther proportion of the xNormalized in the getHeightFast method
xScale = XSpacing;
zScale = ZSpacing;
this.heightMultipler = heightMultipler;
this.image = heighmapName;
sourceImage = gfactory.GetTexture2D(image);
int xLength = sourceImage.Width;
int yLength = sourceImage.Height;
terrainWidth = xLength;
terrainHeight = yLength;
this.rotation = rotation.Value;
//this.scale = scale;
Color[] colorData = new Color[xLength * yLength];
sourceImage.GetData<Color>(colorData);
var heightStore = new float[xLength, yLength];
for (int i = 0; i < xLength; i++)
{
for (int j = 0; j < yLength; j++)
{
Color color = colorData[j * xLength + i];
heightStore[i, j] = (color.R) / heightMultipler;
if (heightStore[i, j] > maxHeight)
{
maxHeight = heightStore[i, j];
}
if (heightStore[i, j] < minHeight)
{
minHeight = heightStore[i, j];
}
}
}
//Create the terrain.
BEPUphysics.CollisionShapes.TerrainShape shape = new BEPUphysics.CollisionShapes.TerrainShape(heightStore, BEPUphysics.CollisionShapes.QuadTriangleOrganization.BottomLeftUpperRight);
terrain = new Terrain(shape, new BEPUphysics.MathExtensions.AffineTransform(new Vector3(XSpacing, 1, ZSpacing), Quaternion.CreateFromRotationMatrix(rotation.Value), new Vector3(-xLength * XSpacing / 2, 0, -yLength * ZSpacing / 2) + translation));
terrain.ImproveBoundaryBehavior = true;
SetMaterialDescription(materialDesc);
}