Shader "Hidden/FisheyeShader" {
Properties {
_MainTex ("Base (RGB)", 2D) = "" {}
}

// Shader code pasted into all further CGPROGRAM blocks
CGINCLUDE

#include "UnityCG.cginc"

struct v2f {
float4 pos : POSITION;
float2 uv : TEXCOORD0;
};

sampler2D _MainTex;

float2 intensity;

v2f vert( appdata_img v )
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
o.uv = v.texcoord.xy;
return o;
}

half4 frag(v2f i) : COLOR
{
half2 coords = i.uv;
coords = (coords - 0.5) * 2.0;

float d = length(coords);
float z = sqrt(1.0 - d * d) * intensity.x;
float r = atan2(d, z);
float phi = atan2(coords.y, coords.x);

coords.x = r * cos(phi) + 1;
coords.y = r * sin(phi) + 1;

half4 color = tex2D (_MainTex, coords * 0.5);

return color;
}

ENDCG

Subshader {
Pass {
ZTest Always Cull Off ZWrite Off
Fog { Mode off }

CGPROGRAM
#pragma fragmentoption ARB_precision_hint_fastest
#pragma vertex vert
#pragma fragment frag
ENDCG
}

}

Fallback off

} // shader

Unity FisheyeShader using Spherical Mapping的更多相关文章

  1. Unity随机随学

    1.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作.渲染管道中的步骤很多,都要将几何物体从一个坐标系中变换到另一个坐标系中去. 主要步骤有: 本地坐标->视图坐标-> ...

  2. 理解UV贴图

    一.理解UV贴图UVs是驻留在多边形网格顶点上的两维纹理坐标点,它们定义了一个两维纹理坐标系统,称为UV纹理空间,这个空间用U和V两个字母定义坐标轴.用于确定如何将一个纹理图像放置在三维的模型表面.本 ...

  3. HoloLens开发手记 - Unity之Spatial mapping 空间映射

    本文主要讨论如何在Unity项目中集成空间映射功能.Unity内置了对空间映射功能的支持,通过以下两种方式提供给开发者: HoloToolkit项目中你可以找到空间映射组件,这可以让你便捷快速地开始使 ...

  4. 【Unity Shaders】法线纹理(Normal Mapping)的实现细节

    写在前面 写这篇的目的是为了总结我长期以来的混乱.虽然题目是"法线纹理的实现细节",但其实我想讲的是如何在shader中编程正确使用法线进行光照计算.这里面最让人头大的就是各种矩阵 ...

  5. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之灯光介绍Lights 既上一篇分享了中文字幕的摄像机介绍Cameras后,本篇分享一下第2个已完工的 ...

  6. Unity 5 Game Optimization (Chris Dickinson 著)

    1. Detecting Performance Issues 2. Scripting Strategies 3. The Benefits of Batching 4. Kickstart You ...

  7. Physically Based Shader Development for Unity 2017 Develop Custom Lighting Systems (Claudia Doppioslash 著)

    http://www.doppioslash.com/ https://github.com/Apress/physically-based-shader-dev-for-unity-2017 Par ...

  8. Unity Glossary

    https://docs.unity3d.com/2018.4/Documentation/Manual/Glossary.html 2D terms 2D Physics terms AI term ...

  9. Unity.Interception(AOP)

            在前面我们学习到的是Unity依赖注入(DI)与统一容器来松散耦合,这个设计已经对我们系统带来了很多的好处.但是我们还会想尝试和遵循单一职责,开放封闭原则.比如我们不应该在我们的Bus ...

随机推荐

  1. HTML5 <a>标签download 属性

    一.简单实例 <a href="../images/1.jpg" download="下载图片.jpg"> 点击按钮下载 </a> 二. ...

  2. 对于百川SDK签名验证的问题

    SDK是要在wantu.taobao.com生成的.而生成这个SDK其实是要上传一个apk,而这个上传其实就是取他的签名而已.验证就是那张yw222那张图片.重点是你上传的apk的签名是不是跟你的生成 ...

  3. 新浪微博failed to receive access token

    这个问题很多人都遇到了,很多人发邮件我,我之前解决的时候也花了很大的代价,发现很多的都是抄袭,然后就是找不到答案,确实比较痛苦.避免大家跟我范一样的错误. 保证几个东西: 1.签名正确---非常重要. ...

  4. Windows10 安装配置IIS,并将程序发布到服务器上

    1.确保计算机链接网络(也可在不联网的时候使用安装包进行IIS的安装): 2.打开“控制面板”(“菜单”按钮+x 快捷键)——“程序”——“打开或关闭Windows功能”——展开“Internet信息 ...

  5. 使用ASP在IIS创建WEB站点的函数

    程序代码: '=========================================================='函数介绍:创建WebSite'本函数使用ADSI,需要Adminis ...

  6. wget 使用技巧

    wget 是一个命令行的下载工具.对于我们这些 Linux 用户来说,几乎每天都在使用它.下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget. $ wget -r -n ...

  7. mysql 表操作

    创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...

  8. 转载 VC 2010下安装OpenCV2.4.4

    说明: 1.安装平台:32位XP,VS2010: 2.OpenCV 2.4.4不支持VC 6.0: 3.网上有很多用CMake编译OpenCV的安装教程,这里建议先不要自己编译,如果使用预编译好的库有 ...

  9. Mysql中explain命令查看语句执行概况

    Mysql中可以使用explain命令查看查询语句的执行方式,使用方法举例:explain + 查询语句 例如:explain select * from user_info 几个重要的字段说明: t ...

  10. JqGrid实现自定义查询

    $("#jqGridId").setGridParam({url:"数据查询地址"}).trigger("reloadGrid");