其他的功能很简单,就是绘制一个正方形,最终合营显示视频的Shader,衬着YUV格局的数据。
透视投影矩阵
在ARFrame可以获取衬着须要的纹理和摄像机矩阵,除了这些,和真实摄像头匹配的透视投影矩阵也是必须的。它可以或许让衬着出来的3D物体透视看起来很天然。
- (void)session:(ARSession *)session cameraDidChangeTrackingState:(ARCamera *)camera { matrix_float4x4 projectionMatrix = [camera projectionMatrixWithViewportSize:self.viewport.size orientation:UIInterfaceOrientationPortrait zNear:0.1 zFar:1000]; GLKMatrix4 newWorldProjectionMatrix = GLKMatrix4Identity; for (int col = 0; col < 4; ++col) { for (int row = 0; row < 4; ++row) { newWorldProjectionMatrix.m[col * 4 + row] = projectionMatrix.columns[col][row]; } } self.worldProjectionMatrix = newWorldProjectionMatrix;}膳绫擎的代码演示了若何经由过程ARKit获取3D透视投影矩阵,有了透视投影矩阵和摄像机矩阵,就可以很便利的应用OpenGL衬着物体了。
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect { [super glkView:view drawInRect:rect]; [self.objects enumerateObjectsUsingBlock:^(GLObject *obj, NSUInteger idx, BOOL *stop) { [obj.context active]; [obj.context setUniform1f:@"elapsedTime" value:(GLfloat)self.elapsedTime]; [obj.context setUniformMatrix4fv:@"projectionMatrix" value:self.worldProjectionMatrix]; [obj.context setUniformMatrix4fv:@"cameraMatrix" value:self.cameraMatrix]; [obj.context setUniform3fv:@"lightDirection" value:self.lightDirection]; [obj draw:obj.context]; }];}本文重要介绍了OpenGL ES衬着ARKit的根本思路,没有对OpenGL ES技巧细节描述太多。如不雅你有兴趣,可以直接clone Github上的代码深刻懂得。
【编辑推荐】
- 针头扎入皮肤也能量化成数据?这套VR手术模仿体系将成为大夫们的练手神器
- 频谱的故事:大年夜模仿旌旗灯号到3G再到如今的5G收集
- 1.3.6 安装模仿器
- Uber若何悠揭捉?环神经收集(RNN)猜测极端事宜?
- 将来已来 VR摸索医学立异,戴尔-医微讯数字医学模仿仿真结合实验室研究结不雅展示
推荐阅读
如何配置并集成iRedMail服务到Samba4 AD DC中
在本教程中,将进修若何修改供给邮件办事的 iRedMail 重要守护过程,响应地,Postfix 用于邮件传输,Dovecot 将邮件传送到帐户邮箱,以便将它们集成到 Samba4 AD 域控制器中。请求在 Cen>>>详细阅读
地址:http://www.17bianji.com/lsqh/36092.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示