unity 绘制三角形

哎 该学的还是要学

参考:http://www.narkii.com/club/thread-369573-1.html

unity 顶点绘制三角形

脚本绘制;

其实filter和render就是进行资源的加载以及渲染的设置,和device和context类似。

其中注意的是Material中shader路径的加载。。。。

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 //meshFilter 数据资源的加载
 5 //meshRender 加载后渲染的设置
 6 public class DrawTriangleTest : MonoBehaviour
 7 {
 8     
 9     private Mesh m_mesh;
10     public Material m_material;
11 
12     private void Awake()
13     {
14         if(m_material.shader==null)
15         m_material = new Material(Shader.Find("Custom/TriangleTest"));
16     }
17 
18     // Use this for initialization
19     void Start ()
20     {
21         Vector3[] trianglePos = new Vector3[]
22         {
23             new Vector3(0,0,0),
24             new Vector3(1,1,0),
25             new Vector3(-1,1,0),
26         };
27 
28         int[]  mIndexArr = new int[] {0, 2,1};
29         Color[] mColorArr = new Color[] {Color.green,Color.red,Color.blue};
30 
31         m_mesh = new Mesh();
32         m_mesh.vertices = trianglePos;
33         m_mesh.triangles = mIndexArr;
34         m_mesh.colors = mColorArr;
35 
36     }
37     
38     // Update is called once per frame
39     void Update ()
40     {
41         Graphics.DrawMesh(m_mesh,Vector3.zero,Quaternion.identity,m_material,0);
42     }
43 }
View Code

shader进行cull back 操作:

 1 Shader "Custom/TriangleTest" {
 2     Properties {
 3         }
 4     SubShader {
 5         Pass{
 6             
 7         Fog{Mode off}
 8         Cull Back
 9         
10         CGPROGRAM
11         #pragma vertex vert
12         #pragma fragment frag
13         #include "UnityCG.cginc"
14 
15     struct vToFragment
16     {
17        float4 pos : SV_POSITION;
18        float4 color : color0;
19     };
20 
21     vToFragment vert(appdata_full inV)
22     {
23         vToFragment outToFrag;
24         outToFrag.pos = mul(UNITY_MATRIX_MVP,inV.vertex);
25         outToFrag.color= inV.color;
26         return outToFrag;
27      }
28 
29     float4 frag(vToFragment inData):SV_Target
30     {
31         float4 outColor;
32         outColor = inData.color;
33         return outColor;
34     }
35 
36         ENDCG
37     }
38     }
39     FallBack "Diffuse"
40 }
View Code

 

转载于:https://www.cnblogs.com/sun-shadow/p/5102772.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值