Public API Changes Aspose.3D 2.0.0
Contents Summary
- Dds dds Collada formatı
- Dds dds Aspose.ThreeD.Render. Ienenderararget/Ienenderexexture/IRenderinindow/Iexexturenit nit arayüzleri ve Aspose.ThreeD.Render.Viewport/InitializationException/Renderer/Textureyype/riverriverriverxception/Renderaraactory/Renderaraarameters sınıfları
- Dds dds Aspose.ThreeD.Render. Postorocessing sınıfı
- Dds dds Getetoundingox ox yöntemi Aspose.ThreeD.Node sınıfı, dds dds yeni sınıflar Aspose.ThreeD.Utilities. ounoundingox ox ve Aspose.ThreeD. lities ti.. ounoundingoxoxExtent
- Real-zaman dering endering
- AddData yöntemleri Aspose.ThreeD.Entities. VertexElementUclass class eklenir
Dds dds Collada formatı
In bu sürümü (2.0.0), geliştiriciler Collada 3D dosyalarını içe aktarabilirler, bu nedenle Collada özelliği Aspose.ThreeD. File. ormat sınıfına eklenir.
Dds dds Aspose.ThreeD.Render. Ienenderararget/Ienenderexexture/IRenderinindow/Iexexturenit nit arayüzleri ve Aspose.ThreeD.Render.Viewport/InitializationException/Renderer/Textureyype/riverriverriverxception/Renderaraactory/Renderaraarameters sınıfları
The yeni Viewport ve Renderer sınıfları, 3D sahnesinin görüşlerini yakalamanıza ve bir doku veya pencereye kaydetmenize yardımcı olan ana sınıflardır. Diğer yardım sınıflarının All detayları aşağıdaki gibidir:
- Aspose.ThreeD.Render. riverriverriverxception sınıfı-İç kiracının istisnaları Driverriverxception olarak sarılır.
- Aspose.ThreeD.Render.InitializationException sınıfı-Bu istisna, işleyiciyi başlatamazken atılır, örneğin OpenGL 4.0 donanım desteği olmayan bir bilgisayarda başlatır.
- IRenderararget arayüzü-It, Ienender. exture/Ienender. indow’un temel arayüzüdür.
- IRenderexexture arayüzü-It, sahneyi bir veya daha fazla dokuya dönüştürmeye izin verir (dokular video belleğinde bulunur ve sistem belleğine aktarılabilir).
- IRenderinindow arayüzü-It, sahneyi gerçek zamanlı olarak pencereye dönüştürmeye izin verir.
- ITexturenit nit arayüzü-ITexturenit nit, Gside side side ve Cmemory memory veya Gmemory memory bellekteki doku verilerinde doku örnekleyicidir.
- Textureyype enum-It, Texture1D, Texture2D, Texture3D, uubeap ap ve Array2. gibi dokuların türünü tanımlar.
- Rendertory actory sınıfı-It, bir sahneyi dokulara veya pencereye gerçek zamanlı olarak oluşturmaya yardımcı olur.
- Renderenarameters sınıfı-It, renk bitleri, derinlik bitleri, şablon bitleri ve çift tamponlama gibi render hedefinin nasıl oluşturulacağı ile ilgili parametreleri tanımlar.
07apture bir 3D cene cene ve Render bir doku veya pencere Viewports
C#
// load an existing 3D scene
Scene scene = new Scene("scene.obj");
// create an instance of the camera
Camera camera = new Camera();
scene.RootNode.CreateChildNode("camera", camera).Transform.Translation = new Vector3(2, 44, 66);
// set the target
camera.LookAt = new Vector3(50, 12, 0);
//create a light
scene.RootNode.CreateChildNode("light", new Light() {Color = new Vector3(Color.White), LightType = LightType.Point}).Transform.Translation = new Vector3(26, 57, 43);
// the CreateRenderer will create a hardware OpenGL-backend renderer
// and some internal initializations will be done.
// when the renderer left using the scope, the unmanaged hardware resources will also be disposed
using (var renderer = Renderer.CreateRenderer())
{
renderer.EnableShadows = false;
// create a new render target that renders the scene to texture(s)
// use default render parameters
// and one output targets
// size is 1024 x 1024
// this render target can have multiple render output textures, but here we only need one output.
// The other textures and depth textures are mainly used by deferred shading in the future.
// but you can also access the depth texture through IRenderTexture.DepthTeture
// use CreateRenderWindow method to render in window, like:
// window = renderer.RenderFactory.CreateRenderWindow(new RenderParameters(), Handle);
using (IRenderTexture rt = renderer.RenderFactory.CreateRenderTexture(new RenderParameters(), 1, 1024, 1024))
{
//this render target has one viewport to render, the viewport occupies the 100% width and 100% height
Viewport vp = rt.CreateViewport(camera, new RelativeRectangle() {ScaleWidth = 1, ScaleHeight = 1});
//render the target and save the target texture to external file
renderer.Render(rt);
rt.Targets[0].Save("file-1viewports.png", ImageFormat.Png);
//now let's change the previous viewport only uses the half left side(50% width and 100% height)
vp.Area = new RelativeRectangle() {ScaleWidth = 0.5f, ScaleHeight = 1};
//and create a new viewport that occupies the 50% width and 100% height and starts from 50%
//both of them are using the same camera, so the rendered content should be the same
rt.CreateViewport(camera, new RelativeRectangle() {ScaleX = 0.5f, ScaleWidth = 0.5f, ScaleHeight = 1});
//but this time let's increase the field of view of the camera to 90 degree so it can see more part of the scene
camera.FieldOfView = 90;
renderer.Render(rt);
rt.Targets[0].Save("file-2viewports.png", ImageFormat.Png);
}
}
Dds dds Aspose.ThreeD.Render. Postorocessing sınıfı
Post. rocessing sınıfı, geliştiricilerin gerçek zamanlı görüntü işleme filtresini işlenmiş görüntüye uygulamasına izin verir. In bu sürüm 2.0.0, 4 dahili işlem sonrası efekt sağladık. We, geliştiricilerin gelecekteki sürümde kendi özel işlem sonrası algoritmalarına sahip olmasına izin verecektir.
0707aving 3D Views üzerinde Vpply iiEffects
C#
// load an existing 3D scene
Scene scene = new Scene("scene.obj");
// create an instance of the camera
Camera camera = new Camera();
scene.RootNode.CreateChildNode("camera", camera).Transform.Translation = new Vector3(2, 44, 66);
// set the target
camera.LookAt = new Vector3(50, 12, 0);
//create a light
scene.RootNode.CreateChildNode("light", new Light() { Color = new Vector3(Color.White), LightType = LightType.Point }).Transform.Translation = new Vector3(26, 57, 43);
// the CreateRenderer will create a hardware OpenGL-backend renderer, more renderer will be added in the future
// and some internal initializations will be done.
// when the renderer left using the scope, the unmanaged hardware resources will also be disposed
using (var renderer = Renderer.CreateRenderer())
{
renderer.EnableShadows = false;
// create a new render target that renders the scene to texture(s)
// use default render parameters
// and one output targets
// size is 1024 x 1024
// this render target can have multiple render output textures, but here we only need one output.
// The other textures and depth textures are mainly used by deferred shading in the future.
// but you can also access the depth texture through IRenderTexture.DepthTeture
using (IRenderTexture rt = renderer.RenderFactory.CreateRenderTexture(new RenderParameters(), 1, 1024, 1024))
{
// this render target has one viewport to render, the viewport occupies the 100% width and 100% height
Viewport vp = rt.CreateViewport(camera, new RelativeRectangle() { ScaleWidth = 1, ScaleHeight = 1 });
//render the target and save the target texture to external file
renderer.Render(rt);
rt.Targets[0].Save("Original_viewport.png", ImageFormat.Png);
// create a post-processing effect
PostProcessing pixelation = renderer.GetPostProcessing("pixelation");
renderer.PostProcessings.Add(pixelation);
renderer.Render(rt);
rt.Targets[0].Save("VisualEffect_pixelation.png", ImageFormat.Png);
//clear previous post-processing effects and try another one
PostProcessing grayscale = renderer.GetPostProcessing("grayscale");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(grayscale);
renderer.Render(rt);
rt.Targets[0].Save("VisualEffect_grayscale.png", ImageFormat.Png);
//we can also combine post-processing effects
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(grayscale);
renderer.PostProcessings.Add(pixelation);
renderer.Render(rt);
rt.Targets[0].Save("VisualEffect_grayscale+pixelation.png", ImageFormat.Png);
//clear previous post-processing effects and try another one
PostProcessing edgedetection = renderer.GetPostProcessing("edge-detection");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(edgedetection);
renderer.Render(rt);
rt.Targets[0].Save("VisualEffect_edgedetection.png", ImageFormat.Png);
//clear previous post-processing effects and try another one
PostProcessing blur = renderer.GetPostProcessing("blur");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(blur);
renderer.Render(rt);
rt.Targets[0].Save("VisualEffect_blur.png", ImageFormat.Png);
}
}
Dds dds Getetoundingox ox yöntemi Aspose.ThreeD.Node sınıfı, dds dds yeni sınıflar Aspose.ThreeD.Utilities. ounoundingox ox ve Aspose.ThreeD. lities ti.. ounoundingoxoxExtent
The ounoundingox ox ve Bounding. oxExtent sınıfları 3D düğümünün sınırlama kutusunu temsil eder. Developers kamerayı sıfırlayabilir ve sınırlama kutusundan yüksekliği hesaplayabilir. The sonsuz veya boş sınırlama kutusu, sahnenin geometrisi olmadığı ve sadece sonlu olduğunda kameranın yüksekliğini ayarladığı anlamına gelir.
Real-zaman dering endering
It, geliştiricilerin Wininorms gibi bir Ginçerçeve üzerinde yüksek performanslı gerçek zamanlı işleme gerçekleştirmelerine izin verir, Gframework çerçeve-bağımsız, bu yüzden diğer frameframeframeçerçeveler de bunu desteklemelidir.
AddData yöntemleri Aspose.ThreeD.Entities. VertexElementUclass class eklenir
The VertexElementUV ‘in temel sınıfı VertexElementTemplate ‘den değişti