0303
1.【选择题】关于以下说法正确的是:
A: C/C++ 可以编译成WebAssembly,由于语言的特性,在运行性能上比Javascript快很多,也能突破浏览器限制,实现变声器、GPU运算等功能
B: 编写shader代码能很简单的将彩色图片变成黑白图片,比canvas逐像素修改快很多
C: 因为浏览器安全策略,https的网站无法建立ws链接,无论其是否跨域,必须使用wss
D: webworker中程序与主程序通过postMessage通信,且在其中的运算不阻塞浏览器渲染进程
E: tanslate3D会开启硬件加速,在保证动画流畅的同时也有可能增加性能消耗
-
解答
A: webassembly运算速度比javascript快很多,但运行环境还是浏览器环境。另外变声器可以用audio API,GPU运算可以用shader实现
B: 对于图像处理,GPU比CPU快很多
C: https 对应 wss
D: 像物理引擎等重计算的一般使用webworker,不会阻塞浏览器渲染其它东西
E: 开启硬件加速后,性能销毁由单内存变成内存+显存,同时也存在资源传输损耗
2.【编程题】创建一个价值1个亿的语音聊天机器人,规则如下:
当用户说:你今天开心吗?机器人回复 我今天开心——将你替换成我,去掉"吗"这个字,不做额外的语意理解
(提示:可以使用chrome中Speech相关的API实现,也可以使用阿里云(https://help.aliyun.com/document_detail/72138.html), 百度AI(https://ai.baidu.com/tech/speech/)实现)
-
解答
使用speech相关API较为简单,可查看文档:https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis
使用智能相关服务较为复杂,主要是怎么在浏览器端获取音频数据并传递给server。录音功能可以用 AudioContext 相关API实现,传输数据则使用websocket传输二进制数据
3. 概述题
解释一下在webgl中,半透明物体互相遮挡的原因,提出你的解决方案
-
解答
3D渲染问题,图形学相关,需要了解渲染管线才知道问题所在。
相关资料:https://learnopengl-cn.readthedocs.io/zh/latest/04%20Advanced%20OpenGL/03%20Blending/
简单来说就是后渲染物体某些面片深度测试不通过,导致GPU直接丢弃了这部分面片,不会进入到后面的混合等步骤