zoukankan      html  css  js  c++  java
  • 【Stage3D学习笔记续】山寨Starling(五):纹理计算和尺寸计算

    尺寸计算:

    Starling中的尺寸是以像素为单位的,这一切都得力于我们使用的正交矩阵,还记得我们顶点数据中的位置数据么,如果我们提交的矩形的四个顶点为(0, 0)(0, 100)(100, 0)(100, 100),那么最终通过正交矩阵的转换后绘制到舞台时将会是长宽都为100个像素的矩形。

    那么Starling中的尺寸获取其实就是基于顶点数据来进行获取,详细代码可以参考DisplayObject中的getBounds方法,主要看继承类DisplayObjectContainer和Quad的具体实现;

    但是Starling中设置尺寸不是直接修改顶点数据,而是将新尺寸和顶点数据求比例,然后设置到scaleX或scaleY上来进行拉伸,详见DisplayObject的width和height属性。

    对于容器来说,必须内部存在内容时设置尺寸才会生效。

    纹理计算:

    纹理创建时会对位图进行转换,由于位图只能使用2的幂,所以最终上传到显存的纹理尺寸可能比原来的要大一点,所以在创建纹理时会保留尺寸信息,在Image的获取vertexData获取(getter)方法中,会把当前的顶点信息用当前选择的texture对象进行校正,得到最终需要的顶点位置和uv信息。

  • 相关阅读:
    hh
    SDUT 3923 打字
    最短路
    阶乘后面0的个数(51Nod 1003)
    大数加法
    Biorhythms(中国剩余定理)
    usaco-5.1-theme-passed
    usaco-5.1-starry-passed
    usaco-5.1-fc-passed
    usaco-4.4-frameup-passed
  • 原文地址:https://www.cnblogs.com/hammerc/p/4098126.html
Copyright © 2011-2022 走看看