图形学
梁工123
这个作者很懒,什么都没留下…
展开
-
关于斜视椎体的矩阵上解释
今天在查找斜视椎体是怎么回事的时候,看了一下unity圣典的官方介绍,链接是:http://game.ceeger.com/Manual/ObliqueFrustum.html我发现这里解释的不是很清楚,核心代码为function SetObliqueness(horizObl: float, vertObl: float;) { var mat: Matrix4x4 = camer原创 2015-10-27 11:20:14 · 671 阅读 · 0 评论 -
unity模型任意无限切割插件
前面几篇文章都是关于3d模型切割的原理,经过两天奋战,完成了整个流程的制作,包括了滑动屏幕,切割模型的整个过程,不过这并不是完美版本,因为这个版本目前并没有将切割之后的切口缝合上,不过已经亲测了无限切割(只要你的机器跟得上),本文理解难度其实挺大的,能理解的可以将他运用到其他平台上,比如虚幻之类的,不能理解就只能直接在unity上使用了,没有缝合切口的版本如果运用于2d面片的切割是可以在实际项目中原创 2017-08-09 16:21:31 · 21734 阅读 · 13 评论 -
根据屏幕上的触摸生成平面方程
其实看过我前面两篇文章的朋友应该知道这篇文章的意义,就是为切割模型做准备的,其实我是想有空就慢慢把切割模型整个工程写一下的(要是某天懒惰战胜了勤奋就没办法了),原理虽然已经了然,写出来完整版也不是个简单的事。这篇文章相对来说简单点,就是一些数学运算/* * @authors: liangjian * @desc: */using UnityEngine;using System.Co原创 2017-08-04 11:27:10 · 746 阅读 · 0 评论 -
关于3d模型任意切割的思路
3d模型的任意切割一直是游戏开发里的一个很大的问题,其实博主也没有根本解决,主要的问题是在切面上,然而如果是切面片则并不存在切面的问题,所以是可以在项目中实用的,总之本文权当研究吧。先看看博主切出来的效果下面先看看切出平整切痕的原理吧,本文需要图形学的基础扎实。如上图所示,当切割模型时,对于切面上的三角面,无非是如图中3种情况(正好切在三角形的某个顶点上几乎不可能,不过也可以考虑在内,这里原创 2017-06-02 16:45:49 · 14965 阅读 · 8 评论 -
blend关于透明度的弊端和其alphatest的取舍
首先需要说明的是,计算机在渲染一个模型的时候,并不是根据距离照相机的远近来渲染,而是根据本模型的三角形排序来渲染,这个会对我们开发游戏的过程带来一个麻烦。比如:如果一个模型有两层,后面一层排序是处于优先渲染的,那么前面一层最终渲染出来就会遮挡了后面一层,各位看官可能会觉得挡住就挡住啊,反正看不见,可是当前面一层是带透明度的时候呢,怎么办,这时候计算机会将前面一层模型的像素在缓冲区里取代后面一层模型原创 2016-02-03 12:44:36 · 2036 阅读 · 0 评论 -
3d游戏中人物被遮挡后以其它颜色显示的方法
好久没有更新博客,最近忙于其他事情了。今天玩了一下九阴真经,偶然发现里边有一个效果,如图显示:我们一步步来解释这个效果的原理,涉及的方面其实还挺多的。首先我们必须清楚地知道,在角色被遮挡的时候,已经暴露出来模型其实是分两次渲染,也就是该模型的着色器必然是存在两个通道的。第一个通道便是遮挡后显示出来的蓝色,第二个通道就是普通情况下显示出来的模型。第一步:前面的屋子没有能够遮挡住角原创 2016-09-19 11:20:08 · 2038 阅读 · 0 评论 -
反射矩阵的推导
对于反射矩阵,有许多相关的文摘,博主相当于是做个读书笔记,自己试着推导一下转载 2015-09-05 13:11:45 · 2168 阅读 · 0 评论 -
shader中绘制一个心
很早以前做cocos2dx的时候就看到官方着色器代码中已经有了一个现成的心型代码,故而网上也是有很多基于这个代码的,不过我觉得那个例子并不方便理解,所以就动手写一个容易理解的心型,核心数学公式是利用了笛卡尔的心型公式r=a(1-sinθ)。首先是最终结果示意图下面是完整的着色器代码:Shader "Custom/Heart" { Properties { _MainTex原创 2015-12-02 15:47:03 · 571 阅读 · 0 评论