none
Bob Bao 求解 3D UIElement 显示问题 RRS feed

  • 问题

  • 我现在碰到的问题

    下图

     

    一个正面,一个反面, 我控件元素的坐标和正面是一样的,结果显示到背面而且位置还不对,不知道如何解决

    求解

    这里是例子下载地址,用的3DTool 打开后在屏幕上拖动鼠标切换视角

     


    Hero
    2011年10月12日 17:18

答案

  • 是你的纹理只取了一半都是 0.5 处的,而且切割坐标对应都有问题:

    这张图是你的坐标对应,正好把图弄反了;而且纹理本身是没有负坐标的,都应该是大于0的。

    正确的应该是:

            <Viewport2DVisual3D >
              <Viewport2DVisual3D.Geometry>
                <!--<MeshGeometry3D
                              Positions=".5,.5,0 .5,-.5,0 -.5,-.5,0 -.5,.5,0" 
                              TriangleIndices="1,0,2 0,3,2" TextureCoordinates="1,-1 1,1 -1,1 -1,-1 "/>-->
                <MeshGeometry3D Positions="-.5,.5,0 -.5,-.5,0 .5,-.5,0 .5,.5,0"
                                            TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
              </Viewport2DVisual3D.Geometry>
    

    Sincerely,


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 HeroHua0509 2011年10月16日 14:49
    2011年10月16日 8:35
    版主

全部回复

  • 用GeomtryModel3D 只能画上去

    我是想放上,改有什么功能还有什么功能

    就是Viewport2DVisual3D吧,不知道怎么弄


    Hero
    2011年10月13日 3:34
  • 我运行了你的例子,但不是很明白你的问题,究竟是哪里出了错? 哪边你认为位置不对了?
    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年10月13日 5:35
    版主
  • 我们在贴材质的时候,三角形各个点的顺序会影响到你材质上去后的方向,你检查下是不是这个导致了位置不对。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年10月13日 6:42
    版主
  • 你好,

    你没发现,我的button在背面反向显示了么?

    而且只显示了一角

    我想让他到正面,和那个矩形一样大小的正常显示...

    不知道哪里的问题

     


    Hero
    2011年10月13日 7:30
  • 是你的纹理只取了一半都是 0.5 处的,而且切割坐标对应都有问题:

    这张图是你的坐标对应,正好把图弄反了;而且纹理本身是没有负坐标的,都应该是大于0的。

    正确的应该是:

            <Viewport2DVisual3D >
              <Viewport2DVisual3D.Geometry>
                <!--<MeshGeometry3D
                              Positions=".5,.5,0 .5,-.5,0 -.5,-.5,0 -.5,.5,0" 
                              TriangleIndices="1,0,2 0,3,2" TextureCoordinates="1,-1 1,1 -1,1 -1,-1 "/>-->
                <MeshGeometry3D Positions="-.5,.5,0 -.5,-.5,0 .5,-.5,0 .5,.5,0"
                                            TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
              </Viewport2DVisual3D.Geometry>
    

    Sincerely,


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 HeroHua0509 2011年10月16日 14:49
    2011年10月16日 8:35
    版主
  • OK,了解,谢谢,回头研究下
    Hero
    2011年10月16日 14:49