首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Urhosharp Material.FromImage不使用一些jpg文件

Urhosharp Material.FromImage不使用一些jpg文件
EN

Stack Overflow用户
提问于 2019-11-28 12:43:24
回答 1查看 70关注 0票数 0

我在我的项目中使用Xamarin.Forms和Urhosharp。我正在尝试从一个球面上的图像中设置一个矩阵,在我的安卓项目中一切正常,但是在iOS项目中,当我从一些jpg文件中设置材料时,它不工作,我得到的只是一个黑色的屏幕。

以下是正确工作的jpg:

还有另一个没有:

这是我的密码:

代码语言:javascript
复制
            var scene = new Scene();
        scene.CreateComponent<Octree>();


        // Node (Rotation and Position)
        var node = scene.CreateChild("room");
        node.Position = new Vector3(0, 0, 0);
        //node.Rotation = new Quaternion(10, 60, 10);
        node.SetScale(1f);

        // Model
        var modelObject = node.CreateComponent<StaticModel>();
        modelObject.Model = ResourceCache.GetModel("CustomModels/SmoothSphere.mdl");

        var zoneNode = scene.CreateChild("Zone");
        var zone = zoneNode.CreateComponent<Zone>();
        zone.SetBoundingBox(new BoundingBox(-300.0f, 300.0f));
        zone.AmbientColor = new Color(1f, 1f, 1f);

        //get image from byte[]

        //var url = "http://www.wsj.com/public/resources/media/0524yosemite_1300R.jpg";
        //var wc = new WebClient() { Encoding = Encoding.UTF8 };

        //var mb = new MemoryBuffer(wc.DownloadData(new Uri(url)));
        var mb = new MemoryBuffer(PanoramaBuffer.PanoramaByteArray);
        var image = new Image(Context) { Name = "MyImage" };
        image.Load(mb);

        //or from resource

        //var image = ResourceCache.GetImage("Textures/grave.jpg");
        var isFliped = image.FlipHorizontal();
        if (!isFliped)
        {
            throw new Exception("Unsuccessful flip");
        }
        var m = Material.FromImage("1.jpg");
        m.SetTechnique(0, CoreAssets.Techniques.DiffNormal, 0, 0);
        m.CullMode = CullMode.Cw;
        //m.SetUVTransform(Vector2.Zero, 0, 0);
        modelObject.SetMaterial(m);

        // Camera
        var cameraNode = scene.CreateChild("camera");
        _camera = cameraNode.CreateComponent<Camera>();
        _camera.Fov = 75.8f;
        _initialZoom = _camera.Zoom;

        // Viewport
        Renderer.SetViewport(0, new Viewport(scene, _camera, null));

我已经试过改变压缩级别,ICCC配置文件和.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-29 11:03:00

我在forums.xamarin.com中问了同样的问题,有人回答了这个问题,我将在这里分享它:

在iOS中,每个纹理都需要有两个分辨率的幂,比如256x256或1024x512。看看这是否是问题所在。另外,请检查您是否使用了最新的UrhoSharp版本。

还要确保在BundleResource项目中将图像设置为iOS。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59089199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档