python的图片处理
pillow
Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库。pillow可以说已经取代了PIL,将其封装成python的库(pip即可安装),且支持python2和python3。
Pillow的Github主页:https://github.com/python-pillow/Pillow
Pillow的文档:
https://pillow.readthedocs.org/en/latest/handbook/index.html
安装它很简单
pip install pillow
这里代码使用的是python3
几个基本的api说明及使用Demo
open
>>> from PIL import Ima...
UIelements的基本使用
本文章是实践为主的,所以顺序上和unity的文档有一定错乱!
UXML文件
UIElements的使用是基于UXML文件的,在构建一个属于自己的UIElements前,我们需要先了解UXML的格式(基本的,更加详细请移步unity文档)。
文件格式
xml的固定开头
<?xml version="1.0" encoding="utf-8"?>
<UXML
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="UnityEngine.UIElements"
xmlns:engine="UnityEngine.UIElements"
xmlns:editor="Un...
自定义AssetDatabaseMode的扩展
CustomAssetDatabasePlayMode创建
playMode是在Editor下使用的,用于指定加载的模式的,所以我们需要在Editor下创建就可以了
/// <summary>
/// 自定义assetdatabase模式
/// </summary>
[CreateAssetMenu(fileName = "CustomDatabasePlayMode.asset",
menuName = "Addressables/Content Builders/Use custom database")]
public class CustomAssetDatabasePlayMode : BuildScriptBase
{
}
CustomAs...
unity SRP下shader
渲染管线
渲染管线的几个基本流程
graph LR;
A[应用程序阶段]
B[几何阶段]
C[光栅化阶段]
A-->B
B-->C
应用程序阶段
计算机CPU的处理,包含CPU传递内容到VRAM(显存)
几何阶段
基本都是对顶点的处理
graph LR;
A[模型视点变换]
B[顶点着色]
C[投影]
D[裁剪]
E[屏幕映射]
A-->B
B-->C
C-->D
D-->E
模型视点变换
将模型自身坐标转换到视觉空间坐标
借助《real-time renderi...
unity shader自定义ui
例子使用的shader
Shader "Unlit/CustomShaderUI"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_MainColor("Main Color", Color)=(0.5, 0.5, 0.5, 1.0)
}
SubShader
{
Tags { "RenderType"="Opaque"}
// 简单的pass
Pass
{
HLSLPROGRAM
#pragma vertex LitPassVertex
...
addressable扩展play和build mode
BuildScriptBase
BuildScriptBase是给Editor使用的,并不是打包后在目标平台上用的。
大体流程
先看看BuildScriptBase的大体流程图,这样后面讲代码还能知道怎么回事!
graph TB;
A[BuildScriptBase]
B(BuildDataImplementation)
C(ClearCachedData)
D[end]
E[ProcessAllGroups]
F[ProcessGroup]
G[CanBuildData]
A--build/play menu click-->G;
G--yes-->B;
G--no-->D;
A--clear menu click--&g...
自动化addressable
文章里说到的都是基于代码实现addressable资源配置的!文章使用的是unity 2019.3.3f1,addressable 1.9.2
创建Addressable的配置
首先瞅瞅unity是怎么创建的
unity通过AddressableAssetSettings.Create创建了第一个项目配置!
public static AddressableAssetSettings Create(string configFolder, string configName, bool createDefaultGroups, bool isPersisted)
通过断点的方式,我们获取到了unity创建时的参数
configFolder : 整Addres...
unity shader的inspacetor展示
官方的文档
https://docs.unity3d.com/ScriptReference/MaterialPropertyDrawer.html
例子
Shader "CustomRP/AttrShader"
{
Properties
{
// 图集
_MainTex("Texture", 2D) = "white" {}
// 在inspector界面中隐藏
[HideInInspector] _MainTex2("Hide Texture", 2D) = "white" {}
// 没有`Tilling`和`Offset`
[NoScaleOffset] _Ma...
159 post articles, 20 pages.