孩子一起在家宅了十几天,每天大门不出二门不迈,坚决做到不给国家添乱。在这特殊的亲子时光里,除了在家看绘本、做手工、烹饪美食、玩游戏之外,其实还有另外一个更棒的假期选择,那就是在家“逛”展。
小编特别筛选了一些适合小朋友们的线上展览,在享受视觉+影音的同时,还能轻松涨知识。
在疫情期间,很多机构利用已有数字资源推出一批精彩网上展览,孩子足不出户就能观看全国各地优秀展览,快来和小编一起先睹为快吧!!
北京动物园在这个假期开启了线上动物园,小朋友们在家里就能通过公众号观看各种可爱的动物啦!动物园的工作人员将动物的日常生活制作成短片,配以图文,展示饲养员们消毒、训练、喂食、观察等工作,介绍动物相关的科普知识。
本期线上动物园里介绍的是咱们国家珍贵的金丝猴,喜欢的小朋友可以来“逛逛”。哦对了,还可以留言写下喜欢的动物,官方推送呢!
观看地址:北京动物园微信公众号
国家海洋博物馆位于天津,是中国首座国家级、综合性、公益性的海洋博物馆!同时它也是一座非常年轻且科技范十足的博物馆,现在登录官网,可以通过线上展览板块观看远古海洋、龙的时代、海洋与天文等不同主题的展览,背景音自带讲解,还加有VR功能,完全跟在博物馆里一模一样!
远古海洋
远古海洋展厅包括洪荒海洋——前寒武纪海洋、生命海洋——古生代海洋、龙海沧桑——中生代海洋、新生海洋——新生代海洋四部分内容,是目前国内展品较全、面积最大的古海洋专题展厅。
以地质年代为轴,通过展览叠层石、三叶虫、鹦鹉螺等1158件化石标本,讲述46亿年以来地球、海洋和生命演化的故事。
观看地址:https://www.hymuseum.org.cn/uploadfiles/360data/yuanguhaiyang/?scene_id=33889088
龙的时代
通过龙的时代这一展览,小朋友们可以学习到关于恐龙的各种知识。
滑动鼠标就可以感受来自史前生命的强大气息,看到展厅内距今2.5亿年至6600万年间中生代的爬行动物,如鱼龙、翼龙化石及霸王龙化石等,揭示海洋是生命的摇篮这一主题。
观看地址:
https://www.hymuseum.org.cn/uploadfiles/360data/longdeshidai/?scene_id=30550401
海洋与天文
海洋与天文的展厅给孩子们展现了宇宙星空的奥秘,让他们探索天空中的星辰大海。小朋友肯定会问为什么海洋博物馆会设置天文展区,它们之间有什么关系呢?
其实海洋与天文的关系非常紧密,就连组成海洋的水都极有可能来自彗星!展厅通过陈列的各种天文望远镜、探测仪以及八大行星等展品,详细讲解了海洋与天文之间的密切关系。
观看地址:https://www.hymuseum.org.cn/exb?state=about
故宫博物院在网上“搞事情”可说是颇有经验,线上访问量一度是线下博物院参观人数三倍多!今年还特别在春节期间推出了紫禁城里过大年,以及360°全景故宫,还有线上欣赏文物精品的数字文物库,借助互联网的力量,让大家共同感受文物世界的精彩。
贺岁迎祥——紫禁城里过大年
故宫博物院特别推出了“贺岁迎祥——紫禁城里过大年”的网上活动。
采用贺岁时间轴的方式,详细讲解了从腊月初一的开笔书福,到二月初三撤天灯、门神、对联的中国传统春节习俗以及展示故宫里有关年味的珍贵藏品。
观看地址:
https://www.dpm.org.cn/subject_hesui/guide.html
全景故宫
此次线上展览,国家故宫博物院还推出了全景故宫版块。真正做到足不出户就可浏览故宫的全景,并且还有详细的文字说明和语音解说。小朋友还可选择雪景模式,欣赏从太和殿到御花园的不同场景,在线“云赏雪”。
在画面中那些热门打卡地,如延禧宫、慈宁宫、乾清宫等进行“云游览”,还能看到更为神秘且未对外开放的宫殿,这可比去实地,人挤人啥也看不清楚要好太多了。提示:电脑看的效果更好。
观看地址:
http://mob.visualbusiness.cn/gugong_app_pc/index.html
360°全景虚拟漫游
故宫博物院拥有庞大的宫廷建筑群以及数量众多的珍贵文物,每年也有许多精彩的展览。
此次线上展览,对重要宫殿建筑和精品展览进行360度全景虚拟再现,为观众提供身临其境的游览体验。
观看地址:
https://www.dpm.org.cn/360overallview/index.html
一个以“雷锋,一个汽车兵的故事”为主题的展览在北京汽车博物馆亮相,带领小朋友与雷锋叔叔进行一场穿越时空的对话。
也许雷锋对于现在的孩子来说已经有些久远,但爸爸妈妈一定不陌生,在看展的同时,不妨和孩子讲讲有关他的故事……
观看地址:
http://wangzhan.cntv.cn/
中国妇女儿童博物馆之家和万事兴——家教家风主题展。
家,不仅是一个人情感的牵挂,更是一个人安身立命、修复立德的起点。家和万事兴—家教家风主题展通过300多张图片、80多件实物展品和一个个感人至深的故事,讨论了家与家族、家与国家、家与社会的三组关系。
小朋友按照图片上地面提示的箭头就即可进入展览,在每一个展品旁都会有【+】符号和语音提示,可边听边看展,点击【+】符号还可看到展品的清晰大图,非常棒。
观看地址:
https://www.boyuntu.com/demo/zgfnet/web/pc.html
2019年3月23日,中意两国代表在罗马交换了796件中国流失文物艺术品的返还证书。此次《归来——意大利返还中国流失文物展》线上展示了安返故乡的精美文物,回顾两国共同促成文物回归的12年历程。
展品可以说是件件精美绝伦,时间跨越长达5000年之久,是一场十分难得的文物展。同样采用3D效果、音频+文字图片注解,更是增设了分享、点赞、评论等功能。
观看地址:
https://webapp.vizen.cn/backhome/index.html
《律动世界——化学元素周期表专题展》浓缩了化学元素及元素周期律相关的科技知识,用新奇好玩、易于操作和理解的方式向小朋友展示了人们认识和利用化学元素周期律改变生活的过程。
线上展带有VR功能,效果更加逼真。普通操作时只能点击下面场景图片,一张张切换,孩子自己完成有点难度,需要家长陪同。不过中国科技馆官网的虚拟现实频道还有其他不同主题的线上展览,感兴趣可以看看。
观看地址:
https://xnmy.cdstm.cn/vr/78808/
最后,除了以上小朋友观看的线上展览外,小编为大朋友们也推荐一个看展的好去处——由国家文物局推送的博物馆线上展览,这里有更多更精彩的展览集合信息,可点击下方链接,继续消磨假期时光。
观看地址:
http://virtual.vizen.cn/exhibition/index.html
*文章配图均来自网络,版权归作者所有
章相关引用及参考:映维网
利用了多视图三维重建来渲染影像。
(映维网 2018年04月10日)谷歌在2015年推出了Jump,简化从拍摄到播放的VR视频制作流程。高质量VR相机能够令拍摄变得更加简单,好消息是映维网了解到Jump Assembler则将令自动拼接变得更快,减低投入的成本。借助成熟的计算视觉算法和谷歌数据中心的计算力量,Jump Assembler可以在沉浸式3D 360度视频中实现清晰逼真的图像拼接结果。
1. 拼接
今天谷歌正式为Jump Assembler带来了了一个新的选项,支持系统采用基于多视图三维重建(multi-view stereo)的全新高质量拼接算法。这种算法能够产生与谷歌标准算法一样的无缝3D全景图,但能够通过复杂的图层和重复的图案来减轻场景中的伪影。它同时能够生成有更清晰对象边界的深度图,而这对VFX非常有用。
下面我们先来看看谷歌标准算法的工作原理。它基于光流概念,亦即将一幅图像中的像素与另一幅图像中的像素进行匹配。在匹配时,你可以知道像素是如何从一幅图像“移动”或“流动”至另一幅图像。在匹配每一个像素后,你就可以通过局部地移动像素来插值中间视图。这意味着你可以在拍摄装置上的相机之间“填补空白”,这样在拼接时就能实现一个无缝,连贯的360度全景图。
左:左侧相机的图像;中:在相机之间插值的图像;右:右侧相机的图像
2. 基于视图插值的光流
谷歌最新的高质量拼接算法利用了多视图三维重建来渲染影像。区别何在?即便拍摄装置上的其他相机也有可能看到相同的对象,但标准光流算法一次仅使用一对图像;而谷歌的新方法可以同时在多幅图像中寻找匹配。
这种全新的多视图三维重建算法计算每一个像素的深度(如像素到对象的距离,一个3D点),而且拍摄装置上任何能看到这个3D点的相机都可以帮助建立深度,令拼接过程变得更加可靠。
左边是标准质量拼接:请留意右边杆棍周围的伪影;右边则是高质量拼接:高质量算法消除了伪影。
左边是标准质量深度图:请注意对象边缘十分模糊;右边则是高质量深度图:边缘有着更多的细节,而且更加锐利。
谷歌的新方法还有助于解决所有拼接算法都在面临的关键挑战:遮挡,亦即处理在一幅图像中可见,但在另一幅图像不可见的对象。多视图三维重建拼接在处理遮挡方面的效果更好,因为如果一个对象隐藏在一幅图像中,这种算法可以利用拍摄装置上的附近任意相机图像来确定该点的正确深度。这有助于减少拼接伪影,并生成具有清晰对象边界的深度图。
如果你是一名VR电影拍摄工作者,并且希望尝试这种全新的算法,只需在 Jump Manager的拼接质量下拉栏中图选择“high quality(高质量)”即可。
原文链接:https://yivian.com/news/43740.html
直以来,使用纯 CSS 实现波浪效果都是十分困难的。
因为实现波浪的曲线需要借助贝塞尔曲线。
而使用纯 CSS 的方式,实现贝塞尔曲线,额,暂时是没有很好的方法。
当然,借助其他力量(SVG、CANVAS),是可以很轻松的完成所谓的波浪效果的,先看看,非 CSS 方式实现的波浪效果。
借助 SVG ,是很容易画出三次贝塞尔曲线的。
看看效果:
代码如下:
<svg width="200px" height="200px" version="1.1" xmlns="http://www.w3.org/2000/svg">
<text class="liquidFillGaugeText" text-anchor="middle" font-size="42px" transform="translate(100,120)" style="fill: #000">50.0%</text>
<!-- Wave -->
<g id="wave">
<path id="wave-2" fill="rgba(154, 205, 50, .8)" d="M 0 100 C 133.633 85.12 51.54 116.327 200 100 A 95 95 0 0 1 0 100 Z">
<animate dur="5s" repeatCount="indefinite" attributeName="d" attributeType="XML" values="M0 100 C90 28, 92 179, 200 100 A95 95 0 0 1 0 100 Z;
M0 100 C145 100, 41 100, 200 100 A95 95 0 0 1 0 100 Z;
M0 100 C90 28, 92 179, 200 100 A95 95 0 0 1 0 100 Z"></animate>
</path>
</g>
<circle cx="100" cy="100" r="80" stroke-width="10" stroke="white" fill="transparent"></circle>
<circle cx="100" cy="100" r="90" stroke-width="20" stroke="yellowgreen" fill="none" class="percentage-pie-svg"></circle>
</svg>
画出三次贝塞尔曲线的核心在于这一段。感兴趣的可以自行去研究研究。
使用 canvas 实现波浪效果的原理与 SVG 一样,都是利用路径绘制出三次贝塞尔曲线并赋予动画效果。
使用 canvas 的话,代码如下:
$(function() {
let canvas = $("canvas");
let ctx = canvas[0].getContext('2d');
let radians = (Math.PI / 180) * 180;
let startTime = Date.now();
let time = 2000;
let clockwise = 1;
let cp1x, cp1y, cp2x, cp2y;
// 初始状态
// ctx.bezierCurveTo(90, 28, 92, 179, 200, 100);
// 末尾状态
// ctx.bezierCurveTo(145, 100, 41, 100, 200, 100);
requestAnimationFrame(function waveDraw() {
let t = Math.min(1.0, (Date.now() - startTime) / time);
if(clockwise) {
cp1x = 90 + (55 * t);
cp1y = 28 + (72 * t);
cp2x = 92 - (51 * t);
cp2y = 179 - (79 * t);
} else {
cp1x = 145 - (55 * t);
cp1y = 100 - (72 * t);
cp2x = 41 + (51 * t);
cp2y = 100 + (79 * t);
}
ctx.clearRect(0, 0, 200, 200);
ctx.beginPath();
ctx.moveTo(0, 100);
// 绘制三次贝塞尔曲线
ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, 200, 100);
// 绘制圆弧
ctx.arc(100, 100, 100, 0, radians, 0);
ctx.fillStyle = "rgba(154, 205, 50, .8)";
ctx.fill();
ctx.save();
if( t == 1 ) {
startTime = Date.now();
clockwise = !clockwise;
}
requestAnimationFrame(waveDraw);
});
})
主要是利用了动态绘制 ctx.bezierCurveTo() 三次贝塞尔曲线实现波浪的运动效果,感兴趣的可以自行研究。
好,接下来才是本文的重点!使用纯 CSS 的方式,实现波浪的效果。
你 TM 在逗我?刚刚不是还说使用 CSS 无能为力吗?
是,我们没有办法直接绘制出三次贝塞尔曲线,但是我们可以利用一些讨巧的方法,模拟达到波浪运动时的效果,姑且把下面这种方法看作一种奇技淫巧。
原理十分简单,我们都知道,一个正方形,给它添加 border-radius: 50%,将会得到一个圆形。
border-radius:用来设置边框圆角,当使用一个半径时确定一个圆形。
好的,如果 border-radius 没到 50%,但是接近 50% ,我们会得到一个这样的图形:
注意边角,整个图形给人的感觉是有点圆,却不是很圆。额,这不是废话吗
好的,那整这么个图形又有什么用?还能变出波浪来不成?
没错!就是这么神奇。:) 我们让上面这个图形滚动起来(rotate) ,看看效果:
可能很多人看到这里还没懂旋转起来的意图,仔细盯着一边看,是会有类似波浪的起伏效果的。
而我们的目的,就是要借助这个动态变换的起伏动画,模拟制造出类似波浪的效果。
当然,这里看到是全景实现图,所以感觉并不明显,OK,让我们用一个个例子看看具体实现起来能达到什么样的效果。
我们利用上面原理可以做到的一种波浪运动背景效果图:
CodePen Demo -- Pure CSS Wave[1]
后面漂浮的波浪效果,其实就是利用了上面的 border-radius: 45% 的椭圆形,只是放大了很多倍,视野之外的图形都 overflow: hidden,只留下了一条边的视野,并且增加了一些相应的 transform 变换。
注意,这里背景是蓝色静止的,运动是白色的椭圆形。
代码也很简单,SCSS 代码如下:
body {
position: relative;
align-items: center;
min-height: 100vh;
background-color: rgb(118, 218, 255);
overflow: hidden;
&:before, &:after {
content: "";
position: absolute;
left: 50%;
min-width: 300vw;
min-height: 300vw;
background-color: #fff;
animation-name: rotate;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
&:before {
bottom: 15vh;
border-radius: 45%;
animation-duration: 10s;
}
&:after {
bottom: 12vh;
opacity: .5;
border-radius: 47%;
animation-duration: 10s;
}
}
@keyframes rotate {
0% {
transform: translate(-50%, 0) rotateZ(0deg);
}
50% {
transform: translate(-50%, -2%) rotateZ(180deg);
}
100% {
transform: translate(-50%, 0%) rotateZ(360deg);
}
}
为了方便写 DEMO,用到的长度单位是 VW 与 VH,不太了解这两个单位的可以戳这里:vh、vw、vmin、vmax 知多少[2]
可能有部分同学,还存在疑问,OK,那我们把上面的效果缩小 10 倍,将视野之外的动画也补齐,那么其实生成波浪的原理是这样的:
图中的虚线框就是我们实际的视野范围。
值得注意的是,要看到,这里我们生成波浪,并不是利用旋转的椭圆本身,而是利用它去切割背景,产生波浪的效果。那为什么不直接使用旋转的椭圆本身模拟波浪效果呢?因为中间高,两边低的效果不符合物理学原理,看上去十分别扭;
可以点进去看看下面这个例子:
CodePen Demo -- pure css wave[3]
好,既然掌握了这种方法,下面我们就使用纯 CSS 实现上面最开始使用 SVG 或者 CANVAS 才能实现的波浪进度图。
HTML 结构如下:
<div class="container">
<div class="wave"></div>
</div>
.wave {
position: relative;
width: 200px;
height: 200px;
background-color: rgb(118, 218, 255);
border-radius: 50%;
&::before,
&::after{
content: "";
position: absolute;
width: 400px;
height: 400px;
top: 0;
left: 50%;
background-color: rgba(255, 255, 255, .4);
border-radius: 45%;
transform: translate(-50%, -70%) rotate(0);
animation: rotate 6s linear infinite;
z-index: 10;
}
&::after {
border-radius: 47%;
background-color: rgba(255, 255, 255, .9);
transform: translate(-50%, -70%) rotate(0);
animation: rotate 10s linear -5s infinite;
z-index: 20;
}
}
@keyframes rotate {
50% {
transform: translate(-50%, -73%) rotate(180deg);
} 100% {
transform: translate(-50%, -70%) rotate(360deg);
}
}
效果图:
CodePen Demo -- Pure Css Wave Loading[4]
虽然效果差了一点点,但是相较于要使用学习成本更高的 SVG 或者 CANVAS,这种纯 CSS 方法无疑可使用的场景更多,学习成本更低!
还能实现类似这样的充电效果:
单纯的让一个 border-radius 接近 50 的椭圆形旋转,动画效果可能不是那么好,我们可以适当的添加一些其他变换因素,让动画效果看上去更真实:
*请认真填写需求信息,我们会在24小时内与您取得联系。