首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三人团队,七天“不眠不休”,我们赶在 Vision Pro 发布那一刻做出了一款头显应用

作者 | Bruno Oliveira 译者 | 王强 策划 | Tina 都是 3D、VR 和 AR 技术爱好者,而且很幸运,到目前为止,工程职业生涯中很大一块儿做都是这些领域项目。...小组件,模型可以从窗口中拿出来: 从侧面看细节视图 现在,你可以点击“添加到游乐场”,然后你柯基犬会进入一个气泡里供你操作(否则这些对象该怎么呢?)...我们在 Rooms 应用中已经做了一个编辑器,如下所示: Rooms 应用中编辑器 所以我们很自然地想到“为什么不在 visionOS 上尝试这个想法呢?”...眼睛来做精密工作并不是很舒服。我们眼睛很快就会因为重复地从一个表面移动到另一个表面来放置而感到疲劳。...如果我们可以简单地食指指向我们想要修改,并做一个手势来编辑它会怎么样?

11310

3D绘图小帮手WebGL入门与进阶(中)——着色器基本编程

程序创建完之后,我们需要需要对着色器进行动态控制才能达到我们所需要功能。(如不知道怎么创建WebGL,可参考上篇文章)。...首先让来介绍2个变量,我们需要借助这2个变量搭建桥梁才能使JavaScript与GLSL ES之间进行沟通。 attribute: 用于顶点点着色器(Vertex Shader)传值时使用。...,但是不是我们接下来要讲,因为在3D绘制时候是会经常出现大批量点、线、面的绘制,所以WebGL提供了一种承载机制来达到传递多点能力,说了这么多,也让我们来看看到底是什么吧。...缓存区中已经存储了多个顶点坐标,接下来我们需要将此数据运用到对应着色器上,才能真正绘制出来可视化图像,如何传递呢?...gl.drawArrays(gl.POINTS, 0 , 200); 看看屏幕吧,是不是出来了好多点?

1.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

像素时代黄昏和“淘宝叛军”

比如:《仙剑奇侠传》里李逍遥就是“像素”拼成,而在《世界》里,主角史蒂夫就是由组成。 2、再解释一下什么是“时代”。...(这两把钥匙绿色字体表示,后面说到钥匙时候,还会用绿色标注。) 灰烬之下,开始有了新芽。 (三)时代“商品详情页” 不妨把进度条拉到2021年,也就是我们今天故事前夜。...比如一个吸尘器,有很多组件、吸头,它们怎么装配才能吸地毯,怎么装配才能吸瓷砖呢?...于是,这些3D商品怎么才能“低成本”、“大量地”建模制作出来,就成了迫切需要解决问题。 巧了,在淘宝技术团队,恰好有一群大牛在研究这个问题。...所以,只想小心翼翼地客观呈现这些大牛们努力: 他们只是从自己熟悉家园出发,各自方式开始了远征,为时代悄悄准备“砖石”——一旦未来降临,我们手中不至于赤手空拳。

42740

“新”for me,2022一起来看看这些技术

什么是“好”技术,为什么“火” 前言:这个是个人观点,技术要用在合适业务场景中才能体现出优势,而不是盲目的去学,去看 解决现今开发技术痛点 协程 回调地狱,切换线程等功能 a()//耗时任务...插件化 这项技术虽然已经不怎么“新”了,大家也都知道了优势和解决痛点: 1.动态更新app (是整个APP都更新,不是修复那种补丁包单独修改某个问题。...怎么样?看着这些知识,是不是已经蠢蠢欲动了哈哈,而且系统源码可是Google工程师写,选用数据结构和算法也必然是优秀,从中又可以学到不少知识。...:0 //代表之后操作 val a=0 这个时候他不会返回0,也就是阻塞住了,a=0一不会走到。这是为什么呢?这里涉及到协程异常取消机制了。 协程中创建了子协程后,会默认建立父子关系。...刚刚创建子协程是不支持取消,所以一堵塞住了。 怎么解决呢?

19920

分享一波学习方向

什么是“好”技术,为什么“火” 前言:这个是个人观点,技术要用在合适业务场景中才能体现出优势,而不是盲目的去学,去看 解决现今开发技术痛点 协程 回调地狱,切换线程等功能 a()//耗时任务...插件化 这项技术虽然已经不怎么“新”了,大家也都知道了优势和解决痛点: 1.动态更新app (是整个APP都更新,不是修复那种补丁包单独修改某个问题。...怎么样?看着这些知识,是不是已经蠢蠢欲动了哈哈,而且系统源码可是Google工程师写,选用数据结构和算法也必然是优秀,从中又可以学到不少知识。...:0 //代表之后操作 val a=0 这个时候他不会返回0,也就是阻塞住了,a=0一不会走到。这是为什么呢?这里涉及到协程异常取消机制了。 协程中创建了子协程后,会默认建立父子关系。...刚刚创建子协程是不支持取消,所以一堵塞住了。 怎么解决呢?

26320

android绘制虚线

有的时候我们需要一种虚线效果,比如图片边框,愤怒小鸟飞翔路径,那么怎么绘制这些线呢?方法很多,目前觉得好有两种: 一、自己创建模式,一个点一个点绘制。...二、Android提供 DashPathEffect 类来创建模式绘制。 下面要演示就是第二种方法,Android提供给我API来绘制。...如本代码中,绘制长度1实线,再绘制长度2空白,再绘制长度4实线,再绘制长度8空白,依次重复.1是偏移量,可以不用理会....DashPathEffect 可以使用DashPathEffect来创建一个虚线轮廓(短横线/小圆点),而不是使用实线。你还可以指定任意虚/实线段重复模式。...当绘制时候,需要指定每一段长度和与原始路径偏离度。 PathDashPathEffect 这种效果可以定义一个新形状(路径)并将其用作原始路径轮廓标记。

2.2K60

从零开始一起学习SLAM | 给点云加个滤网

这样才能够更好进行配准,特征提取,曲面重建,可视化等后续应用处理。 小白:那太好啦,PCL都帮我们想到啦,迫不及待想要实践一下啦。具体怎么操作呢?...方便需要时候去查查哪个那种?...该函数对输入点云数据创建一个三维栅格,每个体中所有点重心来近似显示中其他点,这样该内所有点都用一个重心点最终表示。优点是可以在下采样时候保存点云形状特征。...小白:嗯,了解啦,不过有个问题,想要用这个下采样类时怎么知道它有哪些函数可以呢?...小白:哈哈,离群点就是脱离群众坏点,明白啦!不过这些不是很少吗?有必要赶尽杀绝吗? 师兄:“赶尽杀绝”,很形象比喻!

1.1K10

记忆中像素块褪色了吗?开源编辑器重新做个 3D 吧!

像素(Pixel)概念对应到 3D 空间中就是(Voxel),使用离散基本单位来表示 3D 空间中物体,最直白理解就是一个个小方块,“世界”就是一款非常著名游戏。...有了人人都可以尝试自己制作出 3D 像素作品,回味童年味道。...在测试时发现 Linux 平台上存在严重 bug 会导致无法绘制方块或者无法使用 UI,建议使用 Mac 进行尝试。 二、界面介绍 ?...类似传统编辑器软件,界面中间区域是进行绘制部分,点击鼠标左键并拖动进行笔刷操作。 2.1 工具栏按钮介绍 ? 工具栏按钮使用红框划出,分为两类:撤销重做与笔刷控制。...五、最后 曾在各种视频内容中看到过作者在 MC 中创造各种美丽景观,实现各种有趣想法,现在使用这款编辑器亦可做到相同事情,加上编辑器内提供各种操作工具,能够使创作者们更加方便快捷地去绘制添加

75520

第二回:内存揭奥秘,总线解玄机

刚说完,阿飞眼前又划出了一道光亮,光线指向远处,他看到了另一个庞然大物。 “这是硬,硬盘?” ? “没错,这里不是久留之地,一旦断电了数据就都消失了。...“那我怎么才能从这里到硬盘里去呢?”...,阿飞失望说到。 “你嫌慢?CPU大哥估计还不愿意干这活呢” “啊?为什么?”...“看来课本真过时了,你赶紧帮我联系一下,很着急啊”,阿飞催促到。 “这可不行,只是一个总线从设备,只能被动接收命令时使用总线,只有总线主设备才能主动使用总线,等着吧” 等?...内存又忍不住笑了出来,“总线可不是一根线,那可是几十上百根线呢,数据、地址、时钟还有各种控制信号,一根线哪里够” “原来如此,以为总线就是一根线呢,看来又被课本上图给误导了···”,阿飞若有所思说到

61850

为什么 sin(x²)+sin(y²)=1 图像这么复杂?

有规律正弦波叠加 该函数由8个正弦波叠加组成,每个波有振幅和频率。然而世事无常,每个波振幅和频率决不会那么地有规律,如果随机数设置这8个波振幅和频率,可以得到如下图像: ?...至于为什么设置12.9898和43758.5453123这两个常数值,也不知道呀!大神思维不是等凡人所能理解只知道如果设置了其他数,生成数值可能就不够随机了。 2 二维三维.........每一个函数都是让人头晕目炫,凭怎么去想,也想不清晰这些函数应该是什么样。...这是个三维函数,属于素数据,是个实心。要看内部数值,可以使用绘制,但我只有显示其切片办法。当然切片不一定是平面,可以个曲面来切,将切到数值以颜色形式显示出来。...sin(x²)+sin(y²)=1 不过更愿意将z转化成一个像素值而不是高度值,下图为将z转化成灰度值生成一幅黑白图像: ? 灰度图 可以将z = 1区域红色标识一下: ?

70930

OpenGLES进阶教程7-天空盒效果

2、纹理坐标到纹推导(核心) 纹理坐标(s, t, r)被当作方向向量看待,每个纹理单元都表示从原点所看到纹理立方图像。...如果是texture2D情况,纹理坐标(s, t)会直接返回相应位置; textureCube情况,首先读取cube纹理,然后以正方中心为原点,(s,t,r)为方向,求出正方和方向向量交点位置...考虑到立方面为[-1, 1],那么可以把 (t/s + 1) / 2,这样就得到真正坐标( (t/s + 1) / 2, (r/s + 1) / 2) 3、顶点数据对象切换(核心) glBindVertexArrayOES...) 新顶点数据对象(VAO) 扩展会几率当前上下文中与顶点属性相关状态,并存储这些信息到一个小缓存中。...最后偶然在苹果文档中看到一个关键词OES,似乎明白了什么。 OES是OpenGL ES一个非标准扩展,天空盒里面有用到,而我并没有处理。 尝试用OES来管理飞机顶点模型。

1.3K60

Gmail测试工程经理Ankit Mehta访谈

在最初几年,Ankit Mehta一在和测试自动化代码打交道。他作为技术经理第一个大项目正是Gmail。 Gmail是个巨大挑战。非常庞大,涉及很多快速发展部分。...Ankit:加入一个新项目的头几个星期,主要用来倾听而不是发表意见。深入理解团队非常重要,要学习产品架构,了解团队最新动态。不能接受一位医生在观察不到五分钟时间就给我开具抗生药品。...为什么你会想到这个例?为什么你选择把这个任务自动化而不是那个任务?为什么我们要投入做这个工具?   ...每次执行测试结果都会由绿(成功)变红(失败),然后再花大力气修复这些测试,让他们能够再变绿。开发团队没有过多质疑这种做法,由于这些测试通常还是能发现一些重要问题,因此这种做法就一延续下来了。...这样团队才能获得真正成就感,而不是好多事情在他们手里没有完成。如果这些工作最后都能积极地影响到产品质量,那么也会感到特别高兴。

78860

带你实现漂亮滑动卷尺

前言 HenCoder最近在搞一个仿写活动,活动地址 http://hencoder.com/activity-mock-1/,之前关注过他写关于绘制系列文章,今天就拿这个来练练手,选择模仿是薄荷健康滑动卷尺效果...知道了当前值就在水平中间位置,那么是不是就可以发推出来最左边第一条刻度线呢?找到第一条刻度线后再顺序往右画出当前可显示所有刻度即可。怎么找,请看下面这张很丑图: ?...是不是特别像小学数学计算距离应用题?如果你看不懂,那证明不做老师是对,所以不是问题。 3、画三角形 三角形怎么画?折腾折腾发现canvas有画矩形、画圆等api,但是没有画三角形api。...这就得借助canvas.drawPath来实现(灵感出自你知识储备),控制好三个点坐标就行。根据视觉图三角形位置是:顶部,中间。 ? 为什么先画刻度线而不是先画三角形?...onTouchEvent,提到关于事件传递概念) 这些知识看起来都比较零碎,那如何才能让自己在自定义View、ViewGroup是没那么吃力呢,换句话说自定义View应该掌握哪些知识?

1K100

WebGL简易教程(一):第一个简单示例

NeHe学习教程还有之前《OpenGL编程指南》第七版(也就是红宝书)都非常好,可惜它们都是从固定管线开始讲起;而现在可编程管线技术已经是非常常见基础技术了。...正好最近在研究GIS中地形绘制,那么就通过一步一步绘制地形示例,来总结WebGL相关知识。...如果你不懂GIS这些术语也不要紧,只需要知道这里最终目的是想绘制是一个大地高程模型,是一个包含XYZ坐标的点集,表达了地形情况。 2....如果你只学习过固定管线或者其他二维绘图组件(如GDI),就会非常困惑着色器是什么,为什么要用着色器。比如说在固定管线中,绘制点就是drawPoint,绘制线就drawLine。...(6) 绘制操作 gl.drawArrays(gl.POINTS, 0, 1):绘制一个点。

1.7K10

《大话脑成像》系列之五——fMRI中FDR校正

Vaa表示该本来就应该激活(Truly active),我们进行统计推断发现确实激活了(Declared active)(确实是激活,真的不是脉动,也不是红牛啊)。...Via表示该本来不应该激活(Truly inactive),我们进行统计推断发现居然激活了(Declared active)(这不应该啊,这不科学啊,幻觉!这一定是幻觉)。...FDR公式如下: 或者,我们可以中文表达该公式: (为什么是岳不群,而不是东方不败加日月神教=武林至尊,一统江湖?...(鄙人表示,你不懂) 最后举个例子:假设大脑总共有50000个(V=50000),通过假设检验发现有20000个P<0.05,也就是说Da=20000。...说了这么多,是不是感觉很晕,感觉智商不够用,感觉不会再爱了,这个时候你就会用非常期待,渴求眼神对我说,大神,救救我们这些小白吧,走上人生巅峰,迎娶白富美,怒嫁高帅富机会就只有你能给我了,而此时作为一名广告从业者

2.1K61

受用一生高效 PyCharm 使用技巧(二)

指定参数执行脚本 你在 Pycharm 运行你项目,通常是怎么执行做法是,右键,然后点击Run,或者使用快捷键 Shift + F10 。...这些测试文件搜索结果,对于我们看源代码不仅没有任何帮助,更重要是还干扰视线。于是就研究了一下,从文件名入手,只要在 File mask 里填写 !test* 可以将这些test文件过滤掉。...关闭碍眼波浪线 下面先给出了一小段代码示例,思考一下,为什么name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢? ?...Pycharm 本身会实时地对变量名进行检查,如果变量名不是一个已存在英文单词,就会出现一条波浪线,当一个变量里有多个单词时,Python 推荐写法是下划线来分隔(其他语言可能会习惯使用驼峰式命名法...那么如何关闭这个非语法级别的波浪线呢?很简单,开关就在你右下角那个像 人头像 一样按钮 ? 然后选择 Syntax 级别的即可。同样一段代码,效果如下,干净了很多。 ?

56120

受用一生高效 PyCharm 使用技巧(二)

指定参数执行脚本 你在 Pycharm 运行你项目,通常是怎么执行做法是,右键,然后点击 Run,或者使用快捷键 Shift + F10 。...这些测试文件搜索结果,对于我们看源代码不仅没有任何帮助,更重要是还干扰视线。于是就研究了一下,从文件名入手,只要在 File mask 里填写 !test* 可以将这些test文件过滤掉。...关闭碍眼波浪线 下面先给出了一小段代码示例,思考一下,为什么name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢? ?...Pycharm 本身会实时地对变量名进行检查,如果变量名不是一个已存在英文单词,就会出现一条波浪线,当一个变量里有多个单词时,Python 推荐写法是下划线来分隔(其他语言可能会习惯使用驼峰式命名法...那么如何关闭这个非语法级别的波浪线呢?很简单,开关就在你右下角那个像 人头像 一样按钮 ? 然后选择 Syntax 级别的即可。同样一段代码,效果如下,干净了很多。 ?

82420

干掉雷达!特斯拉前AI总监Karpathy解密离职和纯视觉方案

这些传感器不是免费,不可能凭空出现在车上。不仅需要有一个完整供应链,还需要有人负责采购,」而这些都是要花真金白银。 同时,传感器可能会故障,需要更换。...他高度赞扬前老板马斯克化繁为简能力,「认为埃隆很擅长简化,他曾说:『最好部件是没有部件。』他总会尝试抛弃那些不重要东西,一在做减法,因为他了解组织熵增现象。」...虽然纯视觉方案获得Karpathy大力支持,但当Lex问及如何看待激光雷达和纯视觉方案,以及点云和之间区别时,Karpathy坦言:两者不是自动化驾驶重点。 他说:「看不懂这个争论。...因为这不是问题核心。觉得大家在讨论自动化时应该关注是否有路测车队作为支撑。这个才是人工智能系统能否更好服务关键。」 因此,在考虑传感器探测能力时必须要全面。...驾驶者可以像看谷歌地图一样,通过这些关键信息理解自己所处环境。」 「特斯拉在驾驶系统中使用和谷歌地图类似分辨率信息。但不会预先绘制厘米级精度地图。

25750

Flutter 绘制探索 4 | 深入分析 setState 重建和更新 | 七日打卡

系列引言 可能说起 Flutter 绘制,大家第一反应就是 CustomPaint 组件,自定义 CustomPainter 对象来画。...这就是 State#setState ,一个触发刷新工具,好与坏,不是取决于本身,而是使用它的人。 注:文章结尾有总结,注意查收,毕竟正文不是每个人都能看完。...内存地址一都是 #1dbcd。...在第一篇也说过,对于有 滑动 或 动画 需求绘制,重建触发频率非常大,此时即使对象是 轻量,也会在短时间内创建大量对象,这样不是很好。...就像一边让人家在底层干活,一边说着别人坏话一样。对应 setState 我们要注意刷新元素层级,而不是否定

1.7K20

linux 驱动移植_免驱动led灯好吗

大家好,又见面了,是你们朋友全栈君。...这篇文章主要内容如下: 1.对平台总线简介; 2.led驱动移植。 一.平台总线 首先介绍一下,我们为什么要简单介绍一下平台总线呢?...不用猜,大家肯定知道,每个电路板电路都有不同,那怎么才能把一个led灯驱动程序做成与具体平台无关呢?这就用到了platform总线模型。...地方嘛,在static struct platform_device *smdkv210_devices[] __initdata这个结构里,看看里面的内容应该知道怎么注册了吧,对,就是简单地加入一句...哈哈,现在应该编译一下内核了,要不然内核怎么知道你移植led驱动了,当然了,这得首先配置内核。再次进入linux-3.3.5源文件当中,make menuconfig命令开始咱们配置界面。

2.1K20
领券