Exemple #1
0
    void Start()
    {
        var image   = GetComponent <RawImage>();
        var texture = new Texture2D((int)image.rectTransform.sizeDelta.x, (int)image.rectTransform.sizeDelta.y);

        image.texture = texture;

        var raster = new SoftRender(texture, null);

        float width  = texture.width;
        float height = texture.height;

        for (int i = 0; i < TriggerCount; ++i)
        {
            var v1 = new SoftRender.VertexIn(Random.Range(0, width), Random.Range(0, height));
            var v2 = new SoftRender.VertexIn(Random.Range(0, width), Random.Range(0, height));
            var v3 = new SoftRender.VertexIn(Random.Range(0, width), Random.Range(0, height));
            //var v1 = new Vertex(689, 235);
            //var v2 = new Vertex(284, 213);
            //var v3 = new Vertex(371, 363);
            Debug.Log(v1.pos.ToString() + v2.pos.ToString() + v3.pos.ToString());
            var color = new Color(Random.value, Random.value, Random.value);
            raster.DrawTriangle2D(v1, v2, v3, color);
        }
        texture.Apply();
    }
Exemple #2
0
    public void Run()
    {
        SRInspector t = (SRInspector)target;

        sri = target as SRInspector;
        var ml = sri.GetComponentsInChildren <MeshFilter>();
        var ll = sri.GetComponentsInChildren <Light>();
        var c  = sri.GetComponentInChildren <Camera>();

        var sr = new SoftRender(c, ll, ml, t.SavePath, t.PicName);

        sr.DrawFrame();
        //sr.DrawFrame_Human();
    }
    void Awake()
    {
        mainCamera = GetComponentInChildren <Camera>();
        lights     = GetComponentsInChildren <Light>();
        filter     = targetTrans.GetComponent <MeshFilter>();
        var unityMeshRenderer = targetTrans.GetComponent <MeshRenderer>();

        if (unityMeshRenderer)
        {
            DestroyImmediate(unityMeshRenderer);
            Debug.Log("测试SoftRender, 不需要Unity自带的渲染组件,已除去。");
        }
        sr = new SoftRender(filter, null, mainCamera);
        sr.Draw();
    }
Exemple #4
0
    void Update()
    {
        var image   = GetComponent <RawImage>();
        var texture = new Texture2D((int)image.rectTransform.sizeDelta.x, (int)image.rectTransform.sizeDelta.y);

        image.texture = texture;

        var raster = new SoftRender(texture, Camera.main);

        raster.DrawFrame();

        DebugInfo.text = string.Format(@"vertex count {0}
fragment count {1}
early-z  count {2}
final-write count {3}", raster.VertexCount, raster.FragmentCount, raster.EarlyZCount, raster.FinalWriteCount);

        texture.Apply();
    }
    // Use this for initialization
    void Start()
    {
        var image   = GetComponent <RawImage>();
        var texture = new Texture2D((int)image.rectTransform.sizeDelta.x, (int)image.rectTransform.sizeDelta.y);

        image.texture = texture;

        var raster = new SoftRender(texture, null);

        float width  = texture.width;
        float height = texture.height;

        for (int i = 0; i < 100; ++i)
        {
            var start = new SoftRender.VertexIn(Random.Range(-width, width * 2), Random.Range(-height, height * 2));
            var end   = new SoftRender.VertexIn(Random.Range(-width, width * 2), Random.Range(-height, height * 2));
            var color = new Color(Random.value, Random.value, Random.value);
            raster.DrawLine(start, end, ref color);
        }
        texture.Apply();
    }