灰度图

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CreatTerrain : MonoBehaviour
{
public Texture2D texture;
// Start is called before the first frame update
void Start()
{
int w = texture.width;
int h = texture.height;
VertexHelper vh = new VertexHelper();
for (int x = 0; x < w; x++)
{
for (int z = 0; z < h; z++)
{
//获取图片中像素的颜色
Color color = texture.GetPixel(x, z);
//从颜色中获取灰度值
float y = color.grayscale;
float uvx = (float)x / (float)(w - 1);
float uvy = (float)z / (float)(h - 1);
vh.AddVert(new Vector3(x, y, z), Color.white, new Vector2(uvx, uvy));
if (x != w - 1 && z != h - 1)
{
vh.AddTriangle(x * h + z, x * h + z + 1, (x + 1) * h + z + 1);
vh.AddTriangle(x * h + z, (x + 1) * h + z + 1, (x + 1) * h + z);
}
}
}
Mesh mesh = new Mesh();
vh.FillMesh(mesh);
GetComponent<MeshFilter>().mesh = mesh;
GetComponent<MeshCollider>().sharedMesh = mesh;
Material material = new Material(Shader.Find("Standard"));
material.mainTexture = texture;
GetComponent<MeshRenderer>().material = material;
}

// Update is called once per frame
void Update()
{

}
}

posted @   陈晨111  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示