自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Houdini Terrain 地形节点

2023 9 15。

2023-09-15 21:08:21 128

原创 Houdini VOP VEX HDA DigitalAsset

VOPVEXHDA

2023-09-10 04:04:07 162

原创 Maya OrientJoint Python

joint的X轴对准子物体(调整orient,不考虑rotate)将joint的Rotate属性转移到JointOrient上。maya的orientJoint功能。显示joint的轴,

2023-01-29 19:45:29 360

原创 Quaternion 四元数

q = a + bi + cj + dk 共轭为 q* = a -bi - cj - dk。交换律一般不成立, 当。向量平行时,可以交换。结合律,分配率成立,

2022-10-06 18:22:05 165

原创 Houdini 快捷键 SOP节点

houdini SOP节点

2022-09-06 20:24:48 1374

原创 投影矩阵DirectX

将传入的ViewSpace下的坐标视为右手系下的坐标。平截头体在Z轴负向。P坐标(0,0,-nearZ)平移,使P点到原点O。矩阵M1ViewSpace近平面半高MP=tan(fov/2)*nearZ近平面半宽AM=tan(fov/2)*nearZ*aspect深度差PP’=farZ-nearZ原点缩放,使近平面半高为nearZ,使近平面半宽为nearZ,使远平面半高位farZ,使远平面半宽为farZ,使深度差为farZ;........................

2022-07-31 14:27:42 392

原创 使用Mip Map

使用mipmap,用于解决 纹理过大 (屏幕像素对应到纹理的区域包含大量纹素,此时采样结果无法代表整体颜色)闪烁的问题

2022-07-14 13:40:34 317

原创 后处理SSAO,双边模糊

后处理SSAO

2022-07-01 10:18:39 438 4

原创 后处理 Bloom GodRay

BloomPostProcessBase

2022-05-23 18:37:45 424

原创 几何着色器

几何着色器用途 添加几何体,删除几何体 改变图元类型Shader "may/Geometry Shader"{ Properties { } SubShader { Tags { "Queue" = "Geometry" "RenderType"="Opaque" } LOD 100 Pass { Tags{"LightMode" = "F...

2022-05-17 21:50:31 380

原创 曲面细分着色器

曲面细分:Hull Shader, Tessellation, Domian Shadertessellation学习迈克老狼2012 (cnblogs.com)Shader "may/my Tess"{ Properties { _BaseColor ("Base Color", 2D) = "white" {} _Tessellation( "tesselation " , Range(1, 64)) = 1 } ...

2022-05-13 09:00:04 150

原创 深度测试

深度测试:ZTest [_ZComp] shader属性Enum( / LEqual / Always / Never(Off) / Greater / Less /GEqual / Equal / NotEqual相机位置1 :绘制顺序:绿红蓝相机位置2:绘制顺序:绿蓝红红:LEqual 绿:LEqual 蓝:Greater渲染队列都是2000Shader "may/Depth test"{ Properties { ...

2022-05-06 13:29:14 449

原创 Stencil模板测试

逐片元操作:透明度测试,模板测试,深度测试,深度写入,混合使用模板缓冲区, 每帧开始时所有像素对应的缓冲区的value 为 0。使用模板测试做效果,一般三部分组成, mask(用平面在Stencil缓冲写入), 外框(可有可无,默认的Stencil设置),模板测试模型(只有与之前写入的Stencil value 相同 才能显示)。Stencil { Ref [ _StencilRefValue ] / 0 / 1 … ReadMask WriteMask Co..

2022-05-06 08:52:48 228

原创 Flow Map

Shader "may/FlowMap"{ Properties { _ColorTint ("Color Tint", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _FlowMap("Flow Map", 2D) = "black"{} _FlowSpeed ("Flow Speed", .

2022-05-05 09:45:02 185

原创 Gamma校正

Gamma使用:对线性的物理变化,人的视觉感受不是线性变化的。当带宽和内存有限时,图片需要压缩,此时可以先调亮图片,在压缩,使用或查看时,再调暗Unity选择颜色空间:当使用默认Gamma空间:输出 fixed4(i.uv.xxx, 1);...

2022-05-03 17:11:28 849

原创 凹凸映射 法线 视差

法线映射: 世界/模型空间的法线贴图:直接得到模型空间法线,便于计算,一般只能用于特定模型 切线空间的法线贴图:可以复用。//使用切线空间法线纹理,在切线空间计算光照...

2022-05-03 14:21:59 227

原创 DirectX 11 加载纹理和模型

DirectX11 加载纹理和模型

2022-04-25 15:01:01 760

原创 Unity Shader Lab 模型切线和法线

DCC法线与切线绿:法线, 红:切线, 蓝:副切线uv channel 0法线由DCC软件确定,一般使用两种:(该点为三根线的端点)三根法线合一,为相邻三个面法线的平均,在shader中视作一个点,与相邻面法线 同向,视作三个点,可能因为一个点对应的inputlayout 只对应一组 NORMAL语义,切线(作为切线空间的x轴)方向必定与法线方向垂直,并且与uv坐标的 u轴在垂直法线的平面的投影向量 同向,法线变换:shaderlab 中:NORNAL..

2022-03-28 14:06:10 5185

原创 Bindable和Drawable

视频Directx3D11box在构建时,完成资源创建,包括vertexBuffer,IndexBuffer,layout,Shader等,并将指针保存在Drawable::vector<Bindable>中,在Doframe()调用 Draw 虚函数,Bindable和子类:用于创建资源(需要Device指针,在Box构造函数创建),和绑定到管线(每帧调用)。Drawable子类Box:作为mApp数据成员,Draw函数用于 调用Bindable的绑定 和 调用Draw

2022-02-28 11:13:38 116

原创 DirectX 使用深度缓冲

#include"mGraphics.h"#include<xutility> //std::size#include<DirectXMath.h> //Matrix Vetor#include<d3dcompiler.h>#pragma comment(lib,"d3d11.lib")#pragma comment(lib,"d3dcompiler.lib") mGraphics::mGraphics(HWND outputWindowHandle.

2022-02-15 20:51:01 844

原创 使用常量缓存

void mGraphics::DrawTriangle(float angle){ struct ConstantBuffer //用于创建常量缓冲的布局 { float rotaror[4][4]; }; ConstantBuffer cBuffer{ //用于创建常量缓冲的数据 cos(angle),sin(angle),0,0, -sin(angle),cos(angle),0,0, 0,0,1,0, 0,0,0,1 };.

2022-01-30 11:21:35 447

原创 dx绘制三角形

创建Buffer,并绑定。创建读取像素着色器,并绑定。创建读取顶点着色器,并绑定。创建顶点着色器输入布局 layout,并绑定。绑定,渲染目标,作为输出。基本拓扑设置。NDC映射到屏幕坐标。最后绘制。MGraphics.cpp#include<d3dcompiler.h>#pragma comment(lib,"d3dcompiler.lib")void mGraphics::DrawTriangle(){ //创建Buffer struct

2022-01-29 09:57:41 461

原创 DirectX应用层

app.h#pragma once#include "MyWindow.h"#include "MyTimer.h"class App{public: int Go();//初始化游戏逻辑,包含消息循环,private: void DoFrame();//处理每一帧的游戏逻辑private: Window wnd{600,400,L"iiii"}; MyTimer timer;};app.cpp#include "App.h"#include &lt.

2022-01-21 22:03:02 331

原创 添加窗口图标

文件:[项目名].rc Microsoft Visual C++ generated resource script.······IDI_MYICON ICON "icon1.ico"resource.h 对应文件的宏名,······#define IDI_MYICON 101window.cppWindow::WindowClass::WindowC...

2022-01-16 18:22:07 472

原创 Window类

myWindow.h#pragma once#include<Windows.h>class WindowClass//单例设计{public: static const wchar_t* GetName()noexcept; static HINSTANCE GetInstance()noexcept;private: WindowClass()noexcept; ~WindowClass(); WindowClass(const WindowClass&) .

2022-01-15 15:26:12 405

原创 创建 windows 窗口基础内容

入口点:WinMain function (winbase.h) - Win32 apps | Microsoft Docs参数:当前应用的实例的句柄,应用先前实例的句柄(总为nullptr),应用命令行,控制窗口显示方式(保持默认);注册:RegisterClassEx(const WNDCASSEX*)接收结构体WNDCASSEX表示窗口的信息:typedef struct tagWNDCLASSEXA { UINT cbSize; //结构体大小

2022-01-13 18:39:52 274

原创 KMP算法next

void GetNext(SqString t,int next[],int len) { int j, i; j = 0; i = -1; next[0] = -1; while (i < len - 1) { if (k==-1 || t[j]==t[i]) { j++; i++; next[j]=i; } else { i=next[i]; } }}初始:某次循环开始:...

2022-01-04 15:04:23 84

空空如也

空空如也

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

TA关注的人

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