自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

翻译 Unity SRP 02 Draw Calls

这是有关创建自定义脚本渲染管道的系列教程的第二部分。 本次会讲着色器的编写以及如何高效的绘制多个对象。Shader为了绘制几何体,CPU需要告诉GPU绘制什么东西,以及如何绘制。所绘制的东西通常都是网格(mesh)。如何绘制可以通过Shader来控制。Shader时一些...

2020-10-03 16:27:33 826

翻译 Unity ECS 05 创建Gameplay

这个部分包含了如何在Unity编辑器中创建基于DOTS的游戏和其他一些信息。它还涵盖了ECS提供的帮助你实现游戏功能的系统和组件。该系统包括:Unity.Transforms:提供描述物体变换的组件,描述对象的父子层次结构的组件,以及管理它们的系统。Unity.Hybrid.Renderer:提供了为了在Unity中渲染ECS实体所需的组件和系统。译注:创作这个词应该是指用Unity的Gameobject和原生的组件进行游戏制作。或者原生的工作流与ECS工作流结合起来进行游戏制作。创作概览您

2020-06-14 14:38:33 457

翻译 Unity ECS 03 共享组件

共享组件是一种特殊的数据组件,可用于根据共享组件中的特定值(除了原型之外)对实体进行细分。 将共享组件添加到实体时,EntityManager会将具有相同共享数据值的所有实体放入同一块中。共享组件使您的系统可以像实体一样一起处理。 例如,作为Hybrid.rendering包一部分的共享组件Rendering.RenderMesh定义了几个字段,包括网格,材质和receiveShadows。 当您的应用程序渲染时,最有效的方法是一起处理所有具有相同字段值的3D对象。 因为共享组件指定了这些属性,所以Ent

2020-06-14 10:35:12 616

翻译 Unity ECS 02 Component的一般用法

原文:https://docs.unity3d.com/Packages/[email protected]/manual/component_data.html组件的一般用法Unity中的ComponentData(也就是ECS中通常所说的组件(Component))是只包含了某个实体(Entity)中的一部分数据(而非行为)的结构。 ComponentData不应包含方法,除了一些工具性的用来访问数据的方法。 您应该在系统(System)中实现所有游戏逻辑和行为。 就面向对象的Unity

2020-06-13 22:47:27 528

翻译 Unity ECS 01 核心概念

原文:https://docs.unity3d.com/Packages/[email protected]/manual/ecs_core.htmlECS 组件实体组件系统(ECS)架构将身份(实体),数据(组件)和行为(系统)分开。 该架构专注于数据。 系统读取组件数据流,然后对数据进行处理,将其从输入状态转换为输出状态,然后对这些实体进行索引(没看懂)。下图说明了这三个基本部分如何协同工作:原图在此图中,系统读取Translation和Rotation组件,将它们相乘(L2W

2020-06-12 13:27:28 365

翻译 Unity SRP 01 Custom Render Pipeline 翻译

原文 : https://catlikecoding.com/unity/tutorials/custom-srp/custom-render-pipeline/文中的连接都是原文的连接, 还没翻译, 翻译后可能会换成翻译后的连接.本文翻译未经作者允许(没问), 我水平非常有限, 也是刚开始学, 就边学边翻译了.文中不重要的部分就直接用机器翻译了, 拿不准的地方会附上原文(我的英文水平很差)自定义渲染管线创建 render pipeline asset 和 render pipeline。渲染

2020-06-11 18:41:18 1065

翻译 Unity Input System 01 快速上手

可以同时启用旧的InputManage和新的InputSystem, 也可以只用一个. 在 Edit > Project Settings > Player 中设置(每个平台都不同, 在下面中间的位置)

2020-06-10 10:39:26 705

原创 EventSystem

current 当前的 事件系统单例current.IsPointerOverGameObject() 是否在UI物体(而不是所有的游戏物体之上ui上有个raycast target 可以不对event system进行影响

2020-05-19 19:07:51 291

原创 Unity编辑器 官方文档

官方文档扩展编辑器三步MyWindow继承EditorWindow随便一个静态函数用 [MenuItem()] 特性, 来添加菜单, EditorWindow.GetWindow(typeof(MyWindow)); 来打开窗口实现OnGUI之类的自定义可序列化类的显示定义默认显示方式继承自 :PropertyDrawer添加[CustomPropertyDrawer(typ...

2020-04-22 15:16:47 415

原创 Unity中 调出打开保存文件的对话框

前置内容先参考这篇文章, 本文是对其的补充前置内容拷贝为了防止原文被删, 我给考过来了(全选复制的)1.OpenFileName数据接收类,如下:using UnityEngine;using System.Collections;using System;using System.Runtime.InteropServices;[StructLayout(LayoutKind...

2020-04-22 11:30:28 983

原创 墨卡托投影推导

废话为啥一堆人都说墨卡托投影是从圆心向圆柱面发射线, 反正我觉得不是那样, 不然公式显然就不对了(也可能是我马虎), 后来去wiki查了一下, 找到了公式的推导.公式x=R(λ−λ0),y=Rln⁡[tan⁡(π4+φ2)]. {\displaystyle x=R(\lambda -\lambda _{0}),\qquad y=R\ln \left[\tan \left({\frac {\p...

2020-04-15 11:16:03 3656 3

原创 关于对法线进行插值的思考

如果对法线进行了插值, 那么就是在模拟光滑的表面而这个表面实际上不是球, 感觉上应该是更接近下图蓝线这样(没有计算, 只是感觉,可能不对)

2020-02-21 14:48:51 1006

原创 4 各种光照模型

逐像素光照 (Phong着色)逐顶点光照 (高洛德着色)环境光Lighting窗口下

2020-02-19 14:04:12 473

原创 3一个简单的Shader

格式一个简单的UnityShader看起来是这样:CG代码段 : 由CGPROGRAM与ENDCG包围起来编译指令 这里的用来告诉Unity, 什么是顶点着色器,什么是片元着色器#pragma vertex 顶点着色器函数名#pragma fragment 片元着色器的函数名模型数据怎么进入Shader的?在调用DrawCall的时候, MeshRender组件会把它负责渲染的模...

2020-02-11 14:30:14 232

原创 2 各种空间 Unity的内置矩阵

各种空间裁剪空间的坐标原点在体的 “中心”, 而不是近剪裁平面屏幕空间之前的变换矩阵在Shader内, 可以访问一些已经算好的矩阵( 根据 Camera 组件的参数等 ,计算出的)也可以访问当前正在渲染的相机的参数信息, 这些参数对应了 Camera组件 上的属性值屏幕(或视口)空间坐标前面已经可用算出每个顶点的裁剪空间坐标. 由于是线性空间, 所以当希望知道每个片元的相应坐标时,...

2020-02-10 21:58:32 476

原创 UnityShader学习 UnityShader概览

包含关系, 后包含前:shader材质要渲染的对象 ( Mesh 或 Particle System )Standard Surface : 基于物理的标准光照模型 着色器Unlit : 基本的顶点片元着色器Image Effect : 后期效果Compute : GPU计算, 与渲染无关ShaderLab : 编写Unity Shader的语言 的名字. 有下面这些语义块...

2020-02-10 20:04:50 185

原创 计算机网络自顶向下 学习笔记 第01章

吞吐量文件端A端B文件一共 F 比特,B接受完整个文件用了T秒瞬时吞吐量:单位:bps。瞬间 B端 收到 文件的速率平均吞吐量: F/TF/TF/T

2019-12-12 00:02:44 254

原创 Unity 编写编辑器工具

比较关键的类PrefabUtility 用来得到预制体GetCorrespondingObjectFromSource从场景中的预制体(Instantiate出来的好像不行) 得到 本地的预制体。官方说可以用来重新链接预制体,我也没明白啥意思GetCorrespondingObjectFromOriginalSource从组件得到本地的预制体。这个组件必须是预制体里的组件,而不是...

2019-11-27 23:37:01 1703

原创 Houdini DOP 学习笔记 001 Volume

节点:VolumeVisualization作用:可以方便的观察Volume。这里调节的只影响观察的效果,不会影响渲染的效果。节点:VolumeMix作用:混合Volume,也可以对的单一的Volume进行更改。节点:Trail作用:拖尾效果。还可以用来计算速度(这里就是) 节点:Fluid Source作用:产生用于导入DOP的vo...

2018-07-31 15:24:40 3583 1

原创 Houdini DOP 学习笔记 003 技巧

 Task功能:不同的task的区别只有参数(大概吧),节点什么的都相同(大概吧)。子层级会继承父层级的参数,也可以通过修改参数,来覆盖父层级的参数。可以用于渲染不同质量的图片等。相关:右键参数——Include in Task ...

2018-07-31 15:24:32 1100

原创 Houdini DOP 学习笔记 002 Mantra

frame by frame:第一帧:几何体缓存,渲染;第二帧:…………node by node : 几何体缓存:第一帧、第二帧……;渲染:第一帧、第二帧…… 

2018-07-31 14:26:59 1257

原创 老子不信我学不会OpenGL系列!008-02 多个Cube!

刚刚我们已经画了一个立方体,现在我们可以来看看如何画出更多的立方体了。由于其他立方体只是修改了一下他们的世界坐标,其他的都没有变,所以我们只要做一个循环就可了:位置信息:glm::vec3 cubePositions[] = { glm::vec3( 0.0f, 0.0f, 0.0f), glm::vec3( 2.0f, 5.0f, -15.0f), glm::ve...

2018-07-30 16:46:42 278

原创 老子不信我学不会OpenGL系列!008-01 Zbuffer!

既然已经学会了如何画3D的东西,那就让我们来画一个正方体吧。这里是顶点数据(没有颜色,用的时候要修改VAO)。下面是画完之后的效果:我们发现后面的面跑到前面来了,遮挡关系是不对的。这是由于OpenGL在绘制的时候,后画上去的三角形,会覆盖先画上去的。也就是说,遮挡顺序是由绘制顺序决定,而不是空间的前后关系决定。不过我们可以通过zbuffer来解决这个问题。 Zbuffer:...

2018-07-30 16:08:48 694

原创 老子不信我学不会OpenGL系列!008 坐标变换!

在OpenGL中,如果 x,y,z 的坐标超出 (-1,1) 的范围,就不可见。一般的手段是:我们定义一个自己的坐标范围,然后在vertex shader里 将这个坐标系变换到标准范围的坐标系(NDC)。在从原始坐标系变换到NDC再到屏幕坐标系的过程中,引入一系中间坐标系当做媒介,要比一步变换到最终的坐标系要容易很多。一般分为下面几个坐标系:本地(局部)空间  Local space (o...

2018-07-30 02:23:45 417

原创 老子不信我学不会OpenGL系列!007 GLM!

这一部分就是讲的线性代数,解析几何的知识,我不仔细看了,只做重点的记录。 旋转矩阵: GLM:在这里下载(我是在GitHub上下载的,官网似乎上不去……)下载master分支(原教程用的是0.9.8,maser分支是0.9.9)。0.9.8矩阵初始化是单位矩阵。0.9.9(我们的版本)矩阵初始化是全零矩阵。需要导入:#include <glm/glm.h...

2018-07-29 21:54:28 637

原创 老子不信我学不会OpenGL系列!006 写在中间的话1

这两个月我没有学,现在是继续的时候了。原本的计划里,在每章最后都会有个总结的图,但是也一直没有做。现在是假期,有时间了,可以补一下。

2018-07-29 16:49:05 194

原创 关于C++的 []、*、&,数组指针引用 之 声明

恩,我原来是一直一直搞不明白这个声明怎么读,还有函数传值。就是死都搞不明白。然后最近终于对声明大彻大悟了。两种类型://第一种int n=0;char c='k';//第二种int *p=&n;char s[4]="c++";char &cc=c;下面说的“存储”请不要当成是 存储到内存,这里的“存储”就是理解时候用的自然语言(不是术语),没有任何科学依据(我不懂汇编...

2018-07-06 21:00:24 367

原创 老子不信我学不会OpenGL系列!005-01 我就说Uniform肯定需要赋值!

上一章,我们没有给 uniform sampler2D texData 在main.cpp中赋值。这里就来解释为啥。实际上 texData 存储的是一个地址,texture对象的地址,我们一般管这个地址叫做 texture unit。而一些会给sampler类型的变量附一个默认值:0号地址。而每个texture对象的默认 texture unit都是0 。所以我们刚刚没有对texData进行赋...

2018-06-02 16:39:54 750

原创 老子不信我学不会OpenGL系列!005 纹理……!

好……曾经的我就是在这里躺尸的…………,因为这节要装个库,用来读取图片,然鹅我原来似乎没装上……图片怎么都读不进来…………。这次……试试吧……我相信我可以的……。原教程讲了一堆东西,然后才开始安装库,我就很不高兴。所以我先安装库(为了可以自己试验,要不然,你啥都干不了,只能看着他干讲)好吧,还是先说一下贴图(纹理,我搞不清这两个的区别,就先当一个东西吧,但是他们应该不是一个意思。英文名字是...

2018-06-02 15:10:53 327

原创 老子不信我学不会OpenGL系列!004-01 我再也不要用字符串写代码了!!!

好吧,我们直接把glsl用字符串写进程序里的时代结束了……之前我们的glsl代码实际上是这个样子的:之后我们的代码将会是这个样子的!:是不是很诱人!!!那么我们就开始吧!Shader类:首先:你要新建一个C++类:复制下面这些代码:(全是原教程的代码,我基本上没改,……也没看…………)头文件(.h文件):#pragma once#include <glad/glad.h> // i...

2018-05-30 18:13:12 606

原创 老子不信我学不会OpenGL系列!004 GLSL!

我猜你看名字一定不知道这是个什么东西,好吧……其实原版教程第一章就说了……只是我懒得记下来了。GLSL就是指 OpenGL Shading Language 。所有的shader都是用这个种语言规范写出来的。本节就来介绍这个语言的一些操作。GLSL是一个类似于C的语言,大部分语法跟C很像。代码构成:一个shader的代码看起来差不多是下面这个样子:#version version_numberi...

2018-05-30 11:21:31 433

原创 老子不信我学不会OpenGL系列!003-01 画方块的操作!

上节画了个三角形,但是在画长方形的时候,你会很郁闷。你需要类似这样的数据float vertices[] = { // first triangle 0.5f, 0.5f, 0.0f, // top right 0.5f, -0.5f, 0.0f, // bottom right -0.5f, 0.5f, 0.0f, // top left ...

2018-05-22 23:00:07 445

原创 老子不信我学不会OpenGL系列!003 绘图的操作!

OpenGL的所有东西都是3D的。而我们的显示器是2D的(……废话)。所以很大一部分工作就是将数据从3D转成2D。OpenGL里干这个事的,叫做graphics pipeline(中文应该是 渲染管线)。graphics pipeline又可以分为两大部分:3D→2D,2D→像素色块。具体来说,graphics pipeline是分了好几步来完成这件事的,第一步接收了很多三维空间中的点(点里面不止...

2018-05-22 12:28:10 352

原创 老子不信我学不会OpenGL系列!002-01 第一个窗口的功能~!

继续上一篇,在本篇,我们会实现两个常用的功能:处理用户的输入,重置背景色。输入处理:我们建立一个函数(processInput),统一管理所有的输入(点鼠标啊,按键盘啊之类)。void processInput(GLFWwindow* window){ if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) glfwSetWindowS...

2018-05-21 16:29:39 193

原创 老子不信我学不会OpenGL系列!002 第一个窗口~!

好了好了,经过最TM痛苦的环境配置,终于来到在正文前言。这一次我们要做的是创建一个可以显示图形的窗口。1.头文件:#include <glad/glad.h>#include <GLFW/glfw3.h>你上一节做的所有工作,就是为了让这两句话不出错……(所以如果待会这里报错,那就……去看看配置环境的东西吧)2.在创建窗口之前……:你要做2件事:1.初始化glfw,2.将...

2018-05-21 15:23:45 345

原创 老子不信我学不会OpenGL系列!001 环境配置!

好!所有东西最TM蛋疼的就是环境配置!你要是觉得想学OpenGL,就只装OpenGL,那你就太天真了!!(对,我当时就是这么天真……),你需要装一堆一堆的东西,目前来说有两个是必须要装的:GLFW(请下载32位~,别问我为什么,我也不知道~,教程就这么写的……)、GLAD(贼鸡儿慢,我开始都以为要翻墙,然鹅不需要,只是慢鹅以。你们自求多福吧)。这两个具体干什么用的我也不清楚,大概就是为了让你的Op...

2018-05-20 19:43:22 867

原创 老子不信我学不会OpenGL系列!000 写在前面的话!

好~继续前面,我放弃了PyQtGraph,毕竟学习资料不是那么全。后来我本来想学Pillow,但是感觉……以后用到3D部分的时候,就尴尬了,而且毕竟人家不是画画用的。不过我还是试了一下,问题来了,其实最主要的原因是:我的Anaconda装不上!装不上Pillow!!迷!分明有,然鹅导入的时候就是跟我说找不到模块,我都能有什么办法??所以……我现在就正在重装anaconda…………。后来我有想试试B...

2018-05-20 17:43:46 304

原创 好网站的记录

LaTeX:教程:

2018-05-17 19:20:30 244

原创 pyqtgraph 案例 002 Basic Plotting

pyqtgraph 官方案例 学习记录 002 Basic Plotting这个案例,主要演示了 pg.plot 的各种功能源代码:from pyqtgraph.Qt import QtGui, QtCoreimport numpy as npimport pyqtgraph as pg#QtGui.QApplication.setGraphicsSystem('raster')app ...

2018-05-17 19:16:35 3694 1

原创 pyqtgraph 案例 001 Command-line Usage

caogao

2018-05-13 22:19:29 714

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除