이번에는 H5의 WebGL을 사용하여 3D 가상 컴퓨터실의 로밍 애니메이션을 구현하는 방법과, H5의 WebGL을 사용하여 3D 가상 컴퓨터실의 로밍 애니메이션을 구현하기 위한 주의사항을 알려드리겠습니다. 실제 사례를 살펴보겠습니다. 3D에서 1인칭을 사용한다는 것은 슈팅 게임에서 1인칭을 사용하는 것을 의미합니다. 1인칭 슈팅 게임(FPS)은 1인칭 시점을 기반으로 하는 비디오 게임의 일종으로 총과 기타 무기를 중심으로 진행됩니다. 즉, 플레이어는 주인공의 눈을 통해 액션을 경험합니다. 장르가 시작된 이래로 고급 3D 및 의사 3D 그래픽은 하드웨어 개발에 어려움을 겪었고 멀티플레이어 게임은 필수가 되었습니다.
요즘 박물관이나 기업에서는 홍보영상 등을 제작하기 위해 3D 애니메이션을 활용하는 경우가 많습니다. 3D 애니메이션 해석의 가장 큰 장점은 내용이나 형식 면에서 사람들에게 실제적인 느낌을 준다는 점입니다. 그래픽 작품보다 직관적이고, 2D 애니메이션보다 현실적이어서 시청자에게 광고 환경에 있는 듯한 느낌을 줄 수 있어 광고의 설득력을 크게 높일 수 있다. 3D 기술의 발전은 관객의 구별 능력에도 도전해 관객의 판단이 가상과 현실 사이에서 표류하게 만든다.
또한 3D 특수 효과의 적용은 창의성을 위한 더 넓은 사고 공간을 제공하고, 창의적인 실행을 위한 확실한 보장이 되며, 창의성의 형식과 스타일을 풍부하게 합니다. 광고테마의 퍼포먼스 매력에 따라 몽환적이고 몽환적인 분위기를 조성하여 관객을 자극하고 감동시켜 관객과의 소통이라는 목적을 달성할 수 있다.3D 애니메이션 홍보영상은 3D 애니메이션, 특수효과 장면, 기업 영상, 사진, 미래 전망 등의 컨텐츠를 후반작업 합성, 더빙, 내레이션 등을 통해 결합하여 직관적이고 생생하며 대중적인 고품격 기업 광고 영상으로 제작되어 사람들에게 사회 계층에 따라 사람들은 회사에 대해 긍정적이고 긍정적이며 좋은 인상을 갖게 되며 이를 통해 회사에 대한 호의와 신뢰가 형성되고 회사의 제품이나 서비스에 대한 신뢰가 생깁니다.
요즘 인류의 '현실' 추구로 인해 3D는 급속도로 발전하고 있으므로 3D를 잘 배우고 활용하는 것은 미래 성공의 필수 요소입니다.
이 기사의 예는 방문을 위해 컴퓨터실에 들어가는 것입니다. 문을 여는 동작은 적절한 회전과 결합되어 기본적으로 컴퓨터실을 방문하는 사람들의 효과를 완전히 시뮬레이션합니다. . 또 다른 장점은 굳이 조작하지 않고도 상사에게 보여주고 싶다면 이런 멋진 효과에 상사도 매우 만족하실 거라는 점이에요!
인터페이스의 "재설정" 및 "시작" 버튼은 본체에 직접 추가된 버튼이며 클릭 이벤트는 이 두 버튼에 추가됩니다.
<div></div><div></div>
전체 장면은 HT 캡슐화된 3D 구성 요소로 구성되어 매우 큰 규모를 구성합니다. 장면을 단순화하기 위해 장면을 별도로 꺼내고 HT로 캡슐화된 ht.JSONSerializer 클래스를 사용하여 장면을 json으로 직렬화하기 위해 코드에 도입했습니다. 모두를 위해 더 명확하게, 3D 장면이 구축되었다고 가정하여 여기에 예를 들어 보겠습니다.
dm = new ht.DataModel();g3d = new ht.graph3d.Graph3dView(dm);//.......构建好场景dm.serialize();//可以填入number参数,作为空格缩进值
이제 환경을 설정하고 json 파일로 변환했으므로 이 경우 코드 제어가 어렵습니다. 그러면 DataModel 데이터
모델이 역직렬화됩니다. 이 함수 의 기능은 json 형식을 객체로 변환하고 역직렬화된 객체를 DataModel 데이터 모델에 전달하는 것입니다. 자세한 내용은 웹용 HT를 참조하세요. 직렬화 매뉴얼: var g3d = window.g3d = new ht.graph3d.Graph3dView(),
dataModel = g3d.dm(),
view = g3d.getView(),
path = null;g3d.setMovableFunc(function(data) { return false;});
g3d.setVisibleFunc(function(data) {
if (data.getName() === "path") {
return false;
}
return true;});
g3d.setEye([523, 5600, 8165]);g3d.setFar(60000);dataModel.deserialize(json);
현재 장면의 "문"과 우리가 택할 경로 "경로"를 작동하고 DataModel 데이터 모델을 순회하여 다음 두 데이터를 얻어야 합니다.
for (var i = 0; i < dataModel.size(); i++) { var data = dataModel.getDatas().get(i); if (data.getName() === "门") {//json中设置的名称 window.door = data; } if (data.getName() === "path") { path = data; } if (window.door && path) {//获取到door 和 path 的data之后就跳出循环 break; }}
이 예에서는 원점으로 돌아가기 위한 "리셋", "동작 시작", "앞으로 이동", "정지"의 네 가지 동작이 있습니다. "시작" 버튼을 클릭하세요. "작업 시작"에서는 "문 열기" 작업만 수행합니다. 작업이 끝난 후 앞으로 이동하려면 "앞으로" 함수를 호출하세요.
function startAnim() { if (window.isAnimationRunning) { return; } reset(); window.isAnimationRunning = true;//动画是否正在进行 ht.Default.startAnim({ frames: 30, // 动画帧数,默认采用`ht.Default.animFrames`。 interval: 20, // 动画帧间隔,默认采用`ht.Default.animInterval`。 finishFunc: function() {// 动画结束后调用的函数。 forward(); }, action: function(t){ // action函数必须提供,实现动画过程中的属性变化。 door.setRotationY(-120 * Math.PI / 180 * t); } }); }
"재설정" 기능 여기에 "재설정"이 있습니다. "원점으로 돌아가는 기능입니다. 이 기능을 사용하여 "문"의 위치를 포함하여 모든 변경 사항을 초기 위치로 복원합니다.
function reset() { if (window.isAnimationRunning) { return; } g3d.setCenter([0,0,0]); g3d.setEye([523, 5600, 8165]); window.forwardIndex = 0; door.setRotationY(0);}
"이동"하려면 반드시 "경로"가 필요합니다. " 걷기, 이것은 방금 얻은 것입니다. "경로"에 대해 window.points = path.getPoints()._as를 통해 "경로"의 모든 요소를 얻습니다. 초기화 window.forwardIndex = 0; 을 제어하여 3D 장면을 설정합니다. "path" Eye와 Center 전후의 두 점을 사용하면 우리가 첫 번째 사람인 듯한 효과를 낼 수 있습니다
var point1 = points[forwardIndex], point2 = points[forwardIndex + 1];var distanceX = (point2.x - point1.x), distanceY = (point2.y - point1.y), distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY)-200;//两点之间的距离通过三角形勾股定理计算 怕碰墙所以-200g3d.setEye([point1.x, 1600, point1.y]);//眼睛g3d.setCenter([point2.x, 1600, point2.y]);//我
HT의 3D 구성 요소에는 눈의 위치를 변경하는 walk(step, anim, firstPersonMode) 메서드가 있습니다. 중심, 즉 눈과 중심 두 점에 의해 설정된 벡터 방향으로 동일한 오프셋을 동시에 이동합니다. step은 오프셋 벡터 길이 값입니다. firstPersonMode 매개변수가 비어 있으면 기본적으로 Graph3dView#isFirstPersonMode()의 현재 값이 사용됩니다. 1인칭 모드에 대해 걷기 작업이 호출되면 이 함수는 Graph3dView#getBoundaries()의 경계 제한을 고려합니다.
g3d.walk(distance, { frames: 50, interval: 30, easing: function(t) {return t; }, finishFunc: function() { forwardIndex += 1; if (points.length - 2 > forwardIndex) {//points.length = 5 g3d.setCenter([point2.x, 1600, point2.y]);//把结束点变成起始点 g3d.rotate(Math.PI / 2, 0, { frames: 30, interval: 30, easing: function(t) {return t;}, finishFunc:function() { forward();} }); } else { var lastPoint = points[points.length - 1];//json 中path的points 的最后一个点 g3d.setCenter([lastPoint.x, 1400, lastPoint.y]); g3d.rotate(-Math.PI / 2, 0, { frames: 30, interval: 30, finishFunc: function() { window.isAnimationRunning = false; } }); } }});
不管“path”的点有多少个,这个判断语句还是能运作,只在最后一个点是跳出 finishFunc 动画结束后调用的函数,并将 window.isAnimationRunning 值设为 false 停止 startAnim 函数。如果不是最后一个点,用户“旋转”之后,回调 forward 函数。至此,全部代码解释完毕,很短的代码量,却做出了这么大的工程!
相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
위 내용은 H5의 WebGL을 활용하여 3D 가상 컴퓨터실에서 로밍 애니메이션을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

HTML5의 핵심 기능에는 시맨틱 태그, 멀티미디어 지원, 오프라인 저장 및 로컬 스토리지 및 형태 향상이 포함됩니다. 1. 코드 가독성 및 SEO 효과를 향상시키는 시맨틱 태그 등. 2. 레이블로 멀티미디어 임베딩을 단순화하십시오. 3. ApplicationCache 및 LocalStorage와 같은 오프라인 스토리지 및 로컬 스토리지는 네트워크없는 작동 및 데이터 저장을 지원합니다. 4. 양식 향상은 처리 및 검증을 단순화하기 위해 새로운 입력 유형 및 검증 속성을 도입합니다.

H5는 다양한 새로운 기능과 기능을 제공하여 프론트 엔드 개발 기능을 크게 향상시킵니다. 1. 멀티미디어 지원 : 미디어를 포함하고 요소를 포함하여 플러그인이 필요하지 않습니다. 2. 캔버스 : 요소를 사용하여 2D 그래픽 및 애니메이션을 동적으로 렌더링합니다. 3. 로컬 스토리지 : LocalStorage 및 SessionStorage를 통해 지속적인 데이터 저장을 구현하여 사용자 경험을 향상시킵니다.

H5 및 HTML5는 다른 개념입니다. HTML5는 새로운 요소 및 API를 포함하는 HTML의 버전입니다. H5는 HTML5를 기반으로 한 모바일 애플리케이션 개발 프레임 워크입니다. HTML5는 브라우저를 통해 코드를 구문 분석하고 렌더링하는 반면 H5 응용 프로그램은 컨테이너를 실행하고 JavaScript를 통해 기본 코드와 상호 작용해야합니다.

HTML5의 주요 요소에는 최신 웹 페이지를 작성하는 데 사용되는 ,,,,, 등이 포함됩니다. 1. 헤드 컨텐츠 정의, 2. 링크를 탐색하는 데 사용됩니다. 3. 독립 기사의 내용을 나타내고, 4. 페이지 내용을 구성하고, 5. 사이드 바 컨텐츠 표시, 6. 바닥 글을 정의하면, 이러한 요소는 웹 페이지의 구조와 기능을 향상시킵니다.

HTML5와 H5 사이에는 차이가 없으며, 이는 HTML5의 약어입니다. 1.HTML5는 HTML의 다섯 번째 버전으로 웹 페이지의 멀티미디어 및 대화식 기능을 향상시킵니다. 2.H5는 종종 HTML5 기반 모바일 웹 페이지 또는 응용 프로그램을 참조하는 데 사용되며 다양한 모바일 장치에 적합합니다.

HTML5는 W3C에 의해 표준화 된 하이퍼 텍스트 마크 업 언어의 최신 버전입니다. HTML5는 새로운 시맨틱 태그, 멀티미디어 지원 및 양식 향상을 도입하여 웹 구조, 사용자 경험 및 SEO 효과를 개선합니다. HTML5는 웹 페이지 구조를 더 명확하게하고 SEO 효과를 더 좋게하기 위해, 등 등과 같은 새로운 시맨틱 태그를 소개합니다. HTML5는 멀티미디어 요소를 지원하며 타사 플러그인이 필요하지 않으므로 사용자 경험을 향상시키고 속도를로드합니다. HTML5는 양식 함수를 향상시키고 사용자 경험을 향상시키고 양식 검증 효율성을 향상시키는 새로운 입력 유형을 도입합니다.

깨끗하고 효율적인 HTML5 코드를 작성하는 방법은 무엇입니까? 답은 태그, 구조화 된 코드, 성능 최적화 및 일반적인 실수를 피함으로써 일반적인 실수를 피하는 것입니다. 1. 코드 가독성 및 SEO 효과를 향상시키기 위해 시맨틱 태그 등을 사용하십시오. 2. 적절한 계약과 의견을 사용하여 코드를 구성하고 읽을 수 있도록하십시오. 3. CDN 및 압축 코드를 사용하여 불필요한 태그를 줄임으로써 성능을 최적화합니다. 4. 태그가 닫히지 않은 것과 같은 일반적인 실수를 피하고 코드의 유효성을 확인하십시오.

H5는 멀티미디어 지원, 오프라인 스토리지 및 성능 최적화로 웹 사용자 경험을 향상시킵니다. 1) 멀티미디어 지원 : H5 및 요소는 개발을 단순화하고 사용자 경험을 향상시킵니다. 2) 오프라인 스토리지 : WebStorage 및 IndexedDB는 오프라인으로 사용하여 경험을 향상시킵니다. 3) 성능 최적화 : 웹 워즈 및 요소는 성능을 최적화하여 대역폭 소비를 줄입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
