- 博客(20)
- 资源 (5)
- 收藏
- 关注
原创 实习+秋招面经总结,经历回看——技术美术岗
经历了长达7个多月的疫情时期,同时也是找实习和工作的七个月,总算是历尽千辛万苦拿到了理想的Offer,现在趁一个小的休息时段,总结一下近七个月的面试试题与经验,与大家分享一下技术美术岗位的相关面试问题,同时反思自己的得失,为后面的工作学习做准备。3月 数字天空 技术美术岗实习总共两面,二面HR面,拿到的第一个实习Offer,但可惜最后没去项目中卡牌效果实现以及应用场景真实感水流的实现思路湖泊边缘透明处理的实现思路(项目引申)游戏比赛的项目,引申序列帧动画的底层实现原理常见爆炸特.
2020-09-26 03:08:21 11760 8
原创 字节跳动技术美术面试(抖音)
两道编程题龙与地下城(DP)两个数组合并去重正式面试渲染管线顶点着色器作用,包括什么工作,MVP矩阵空间变换过程M矩阵中旋转、平移、缩放顺序,分别在M矩阵的哪个部分,如何从M矩阵拆分获得三个变换矩阵,拆分顺序顶点着色器到片元着色器中间流程几何着色器的作用,顶点着色器传输给几何着色器什么数据在DCC软件中,顶点切线空间中的法线方向和切线方向是如何确定的,一个模型有两套UV那么它有几套切线(两套)四元数的理解,如何从两个向量判断四元数(四元数四个参数的代表内容)阴影算法PCF屏幕空
2020-07-09 19:31:55 4490 2
原创 卡通湖水渲染
参考链接:https://roystan.net/articles/toon-water.html先上效果图:分析思路这次我们仅针对湖面的渲染进行分析,个人建议的思考方式是先宏观,再细节。从直观的来看,有这几个主要效果:水颜色的渐变(模拟水的深度渐变)白色的波浪没错,就这两个较为直观的效果,下面的任务不是分析细节,而是针对这两项效果思考解决方案针对效果一:既然是模拟水的深度,那我们就可以采用基于深度着色的方法来实现,最后对不同深度值进行边界控制,分配颜色就行了针对效果二:首先.
2020-07-08 11:20:57 1837
原创 八大排序C#
冒泡排序平均时间复杂度O(n2)平均时间复杂度O(n^2)平均时间复杂度O(n2)public static int[] BubbleSort(int[] Array){ for(int i = 1;i<Array.Length-1;i++){ for(int j = 0;j<Array.Length-i-1;j++){ if(Array[j]>Array[j+1]){ int temple = A..
2020-07-07 13:36:03 285
原创 ColorMask使用简例
按照惯例,先上效果图:从图中我们可以看到,房子的顶部和旗帜的颜色搭配可以有很多种方案,如果我们的项目中有这样的需求,该怎样去实现呢?一种可能的做法就是使用ColorMask,顾名思义,就是使用颜色遮罩。我们可以将希望进行修改的部分的主贴图部分改为灰度图,仅保留阴影关系和细节纹理。然后制作一张Mask遮罩图。这张遮罩图在对应主贴图需要修改的部分标记颜色,并且可以对颜色进行分区处理。针对每个分区,分区颜色和主颜色按照一定关系进行融合,就可以搭配出多种方案啦!当然,如果需要某个部分单独Bloom或者自发
2020-07-02 14:05:57 1340
原创 卡通金属渲染思路
文章案例与素材均来自MinionsArt,如有需要请直接关注其Patreon账号先上效果图:分析思路首先我们根据图片来确定其所包含的元素:白色高光黄色二级高光(或者说金属高光反射)阴影部分还有两点比较隐秘,也是细节所在,盾牌的中心鹰的周围是暗紫色的无金属区域,所以要区别开来其次是边缘自发光,用来模拟淡淡的边缘bloom效果(或者金属Frensel)代码实现有了需求,代码的实现思路就会更加清楚明了白色高光(highlight)注意此处也可以使用smoothstep,.
2020-06-29 18:31:36 3995
原创 计算机网络知识点杂记(复习用)
第一章 概述计算机网络是利用通信线路和通信设备,将分散在不同地点、并具有独立功能的多个计算机系统互相联接,按照网络协议进行数据通信,实现资源共享的计算机系统的集合电信网采用电路交换,实现语音业务;Internet采用分组交换,实现数据业务计算机网络是计算机技术和通信技术相结合的产物计算机网络发展的三个阶段:具有通信功能的批处理系统具有通信功能的分时系统计算机网络(ARPAnet的出现,以资源共享为目的的计算机网络诞生)计算机网络业务应用基本分类:非实时(传统应
2020-06-24 13:07:46 994
原创 Vscode for Unity Shader 用户代码片段(持续更新)
{// Place your snippets for shaderlab here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are://
2020-06-23 14:45:47 1649
原创 完美世界游戏客户端程序面试
一面(业务面试)自我介绍专业有什么课程渲染管线在c#中int的长度,最大值和最小值深度优先、广度优先,如何实现二叉树的广度优先搜索或深度优先搜索了解几种排序算法、快排原理、快排最坏情况、如何让快排成为稳定的算法、快排算法的最坏情况是如何避免的哈希表的原理GC原理,JAVA的GC与C#的不同堆栈区别进程和线程的区别,进程的三种状态、进程进入阻塞的条件,在c#里调用哪个函数会出现这种情况图论中单元最短路径的算法实现单例模式,还了解哪些设计
2020-06-10 23:56:18 1317
原创 技术美术面试问题总结——数字天空
一面1、自我介绍2、项目中卡牌效果实现以及应用场景3、水流的实现思路4、湖泊边缘透明处理的实现思路(项目引申)5、游戏比赛的项目,引申序列帧动画的底层实现原理6、常见爆炸特效和动画序列帧图系统自动分割的底层原理7、PBR流程8、UE4的shader9、数据结构中哈希表的原理,双向链表的原理与应用10、两个游戏特效的实现思路(项目中的)11、计算机图形学的渲染管线12、细分着色器的底层实现、应用场景,为什么需要细分着色器(我人傻了,自己给自己挖坑),导入高细分度的模型会对性能产生什么影
2020-06-10 23:53:57 5925 1
转载 Unity协程原理与实现
转载自https://www.cnblogs.com/yespi/p/9847533.html一、介绍协程Coroutine在Unity中一直扮演者重要的角色。可以实现简单的计时器、将耗时的操作拆分成几个步骤分散在每一帧去运行等等,用起来很是方便。但是,在使用的过程中有没有思考过协程是怎么实现的?为什么可以将一段代码分成几段在不同帧执行?本篇文章将从实现原理上更深入的理解协程,最后肯定也要实现我们自己的协程。关于协程的用法网上有很多介绍,不清楚的话可以看下官方文档,这里不做赘述。二、迭代器.
2020-05-28 23:08:56 634 1
转载 OnTriggerEnter与OnCollisionEnter详解
1,测试OnTriggerEnter和OnCollisionEnter的区别测试:如果两个物体A,B两者都有碰撞体collider(Box Collider,Sphere Collider,Capsule Collider等)A,B都有刚体(Rigidbody)A或者B中有一个勾选isTrigger或者两者都勾选isTriggerA和B都可以进入OnTriggerEnter方法,但是不可进入OnCollisionEnter方法。A和B都不勾选isTrigger,A和B能进入OnCollis
2020-05-28 16:20:52 2339
转载 c#中实现单例模式
介绍单例模式是软件工程中最着名的模式之一。从本质上讲,单例是一个只允许创建自身的单个实例的类,并且通常可以简单地访问该实例。最常见的是,单例不允许在创建实例时指定任何参数——否则对实例的第二个请求但具有不同的参数可能会有问题!(如果对于具有相同参数的所有请求都应访问相同的实例,则工厂模式更合适。)本文仅处理不需要参数的情况。通常,单例的要求是它们是懒惰地创建的——即直到第一次需要时才创建实例。在C#中实现单例模式有各种不同的方法。我将以优雅的相反顺序呈现它们,从最常见的、不是线程安全的版本开始,一直到完
2020-05-28 11:34:49 734
原创 “SV_TARGET”与“SV_POSTION”
每次写片元着色器的时候都会忘记写“SV_TARGENT”,归根到底还是基本功不扎实,没有明白底层原理,现在就来总结归纳一下1、语义绑定首先要明白的是两者的属性,这两个都是语义绑定(semantics binding)。什么是语义绑定呢?语义绑定可以理解为关键字,我们都知道图形渲染是按照一步一步地进行的,又叫做渲染管线。那么为什么是要一步一步地进行呢?因为GPU的架构与CPU非常不同,cpu...
2020-05-06 21:50:39 1150
原创 S03 卡通草地渲染思路
码上效果图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GJLV4zEV-1588771787073)(E:\POST/grass.gif)]官方教程链接:https://roystan.net/articles/grass-shader.html个人能力有限,就不再班门弄斧了,下面简单介绍一下基本思路与个人经验总结,仅供学习参考_(:з」∠)_1、基...
2020-05-06 21:31:15 694 2
原创 Koreographer音乐节奏插件使用教程
先贴一个小demo:相信很多接触过音游开发或项目中有相关音乐节奏类型的需求的开发者们都就了解过这款插件,这里给一下这款插件的初阶教程指导,方便大家快速了解利用这款插件。1. 插件安装将unitypackage 导入项目中后,可能会出现因版本问题出现的API错误,根据提示更改相关脚本的API就可以了(比如笔者的情况是将不再支持的GUI.Text 更改为Text ,并导入UnityEngin...
2020-05-06 21:26:32 1583
原创 简单卡通风格渲染
先码上效果图:1、基本思想通过物体法线与灯光方向的点积来获得基础的漫反射效果通过floor函数 来将漫反射灯光颜色进行离散切割,获得卡通的硬过渡效果最后将灯光与贴图颜色相乘获得最后的效果2、代码展示Shader "Roystan/Toon/Lit"{ Properties { _Color("Color", Color) = (1,1,1,1) ...
2020-03-05 09:24:57 473
转载 S04 切线空间与法线纹理
在学习法线贴图纹理的时候无法避免的遇到了切线空间的学习和理解的问题,在此记录下自己理解的过程。法线纹理的目的和存在的意义:是在底模上表现出高模的各种凹凸细节,而为什么要表现凹凸细节呢,很简单,就是为了光照计算,模拟出高模的凹凸细节,光照的时候可以更加接近现实的质感。如果直接在项目中使用高模的话就不存在这个法线纹理贴图的问题了,因为高模本身的细节足够细致,光照只需要按照模型本身的法线来计算...
2020-02-20 09:43:03 438
原创 S02 Unity ShadeSH9
解光传输的积分方程,采用的是辐照环境贴图算法目前主流的辐照度计算方法:Irradiance environment maps 辐照环境贴图方法,可用于生成柔和的环境光照,计算量比环境贴图更小 ,适合于动态环境precomputed radiance transfer 预计算辐射度,这个方法实际上市将光照方程简化近似,离线计算各顶点或者像素的球谐系数,并压缩存储到顶点或者像素上,运行时重...
2020-02-20 09:20:32 1554
原创 屏幕空间的阴影映射技术个人理解
首先我们来了解一下阴影的形成原理:当一个光源发射的一条光线遇到一个不透明的物体时,这条光线就不可以再继续照亮其他物体(不考虑光线反射),这个物体就会向他旁边的物体投射阴影而在实时渲染中,我们常用到一种名为Shadow map的技术,unity采用的就是这种技术在Unity中,这个技术的实现是通过将摄像机位置与光源位置重合(光源空间),然后按照正常的渲染流程渲染出深度图来作为阴影映射纹理。...
2020-01-13 08:10:40 2053 1
基于MFC框架的媒体播放器开发
2020-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人