昨天周六,群里面还有人在技术交流!!。
[阅读全文]默默吐槽一下:这些人真卷啊,大周末还搞技术,是游戏不好玩还是电影不好看。
前几天发了一篇 FFmpeg 调用 Android MediaCodec 进行硬解码 的文章,这里面的技术点不算太难,也还是调用 FFmpeg 的常用接口操作,但重点在于 FFmpeg 的版本选择以及编译选项要开启 MediaCodec 才行。
关于 FFmpeg 的编译,是个老生常谈的话题了,很多初学者都会卡在怎么编译动态库 so 的问题上,这其实也是 Android 开发转音视频的一大拦路虎,一行 FFmpeg 代码都没来得及写呢,就得先折腾好久编译问题。
[阅读全文]文章原创首发公众号:音视频开发进阶。链接地址:https://mp.weixin.qq.com/s/S8NwQnY4uyQulfZnRF7t_A
FFmpeg 在 3.1 版本之后支持调用平台硬件进行解码,也就是说可以通过 FFmpeg 的 C 代码去调用 Android 上的 MediaCodec 了。
[阅读全文]用 WebRTC 创建相机预览,不到 50 行核心代码就可以轻松搞定了。
直接使用官方给的版本就好了,不需要再去额外编译。
implementation 'org.webrtc:google-webrtc:1.0.30039'
后面都会使用该版本做测试的。
[阅读全文]Half Lambert 模型(也叫作半兰伯特模型)在 Lambert 模型的基础之上做了一些优化。
在 Lambert 模型中,光照无法到达的区域,比如模型的背面,模型外观通常是全黑的,没有任何明暗变化,而 Half Lambert 模型就是改善这一状况。
回顾 Lambert 模型的计算公式如下:
$c_{diffuse} = (c_{light} \cdot m_{diffuse}) \cdot max (0,n \cdot I)$
[阅读全文]在标准光照模型中,可以把光照分为四种:
用一张图来表示各个光照:
而 Lambert 光照模型主要是处理物体漫反射的。
[阅读全文]光照可以说是整个计算机图形学里面最重要的部分了,当展现物体时如何模拟真实世界中的光照环境,这往往是很复杂的。
由于光是可以散射的,一个物体不仅仅可以接收来自直接光源的照射,还可以接收来自周围环境的散射光,而在渲染时,要计算周围环境的散射光就无疑加大了计算量,因为周围环境远比光源复杂多了。
下面就是一张很逼真的光照渲染实例:
如果说这是用手机拍的照片,可能我都分不出来哪里有问题,而计算机模拟真实感渲染就是追求这一目标吧。
[阅读全文]用 Unity 去显示一张图片纹理比用 OpenGL 代码去显示图片要简单多了,而这正是因为 Unity 在背后做了很多封装工作。
要显示的图片如下所示:
它的分辨率是 2560x1600 ,也就是矩形图片,并非正方形。
[阅读全文]Unity 中的 Shader 不同于 OpenGL 的 GLSL ,它是通过 ShaderLab 语言编写的。
ShaderLab 是 Unity 为开发者提供的高层级的渲染抽象层,它是一种说明性语言。
[阅读全文]