본문 바로가기
반응형

전체 글85

[Three.js] Node.js와 Vite로 만드는 3D 모델 뷰어 목차프로젝트 초기화프로젝트 구조index.htmlmain.js실행"> 목차 프로젝트 초기화 프로젝트 구조 index.html main.js 실행 ">목차프로젝트 초기화프로젝트 구조index.htmlmain.js실행웹에서 3D 모델을 구현할 때 WebGL을 다루게 되는데,이때 가장 먼저 떠오르는 대표적인 라이브러리가 바로 Three.js이다. 오랜 기간 쌓인 방대한 커뮤니티와 예제 덕분에, 복잡한 WebGL을 직접 다루지 않고도,손쉽게 3D 웹 콘텐츠를 제작할 수 있다. 최소한의 코드로, Node.js 환경에서 3D 모델을 둘러보는 예제를 만들어보자.1. 프로젝트 초기화npm init -ynpm install threenpm install --save-dev vite">n.. 2026. 9. 1.
[NodeJS] Socket.IO로 채팅방 만들기 목차프로젝트 초기화서버 코드 작성 (server.js)클라이언트 코드 작성 (public/index.html)실행하기">목차프로젝트 초기화서버 코드 작성 (server.js)클라이언트 코드 작성 (public/index.html)실행하기웹에서 양방향 통신을 구현할 때, 표준 API인 WebSocket을 바로 쓸 수도 있지만,재연결과 폴백 처리 같은 것들을 직접 구현해야 해서 은근히 손이 많이 간다. Socket.IO는 이런 부분을 기본으로 제공하는 라이브러리라,빠르게 소켓 기능을 구현하고 싶을 때 훨씬 편하다. 이번 글에서는 최소한의 코드로여러 명이 접속해서 대화할 수 있는 채팅방을 만들어보겠다.1. 프로젝트 초기화아래의 명령어를 통해 프로젝트 폴더를 초기화한다.npm init -ynpm install .. 2026. 9. 1.
[Node.js] node-windows로 Express 서버 백그라운드 서비스화하기 목차서비스로 등록해야 하는 이유node-windows 설치서비스 등록 스크립트 작성서비스 설치 및 확인서비스 제거하기서비스 복구 설정하기"> 목차 서비스로 등록해야 하는 이유 node-windows 설치 서비스 등록 스크립트 작성 서비스 설치 및 확인 서비스 제거하기 서비스 복구 설정하기 ">목차서비스로 등록해야 하는 이유node-windows 설치서비스 등록 스크립트 작성서비스 설치 및 확인서비스 제거하기서비스 복구 설정하기[Node.js] Express로 간단한 웹 서버 만들기목차프로젝트 초기화Express 설치서버 코드 작성서버 실행nodemon으로 자동 재시작 설정하기Node.js에" data-og-host="giseung.tistory.com" data-o.. 2026. 8. 30.
[Node.js] Express로 간단한 웹 서버 만들기 목차 프로젝트 초기화 Express 설치 서버 코드 작성 서버 실행 nodemon으로 자동 재시작 설정하기 ">목차프로젝트 초기화Express 설치서버 코드 작성서버 실행nodemon으로 자동 재시작 설정하기Node.js에서 웹 서버를 만들 때 가장 많이 쓰이는 프레임워크가 바로 Express다.순수 Node.js의 http 모듈만으로도 서버를 만들 수 있지만,Express를 사용하면 라우팅, 미들웨어 처리 등을 훨씬 간단하게 작성할 수 있다. 최소한의 코드로 웹 서버를 구동해 보도록 하자.1. 프로젝트 초기화Node.js가 설치되어 있다는 가정 하에 진행하도록 하겠다. 우선 npm init으로 package.json 파일을 생성한다.-y 옵션을 주면 질문 없이 기본값으로.. 2026. 8. 27.
[React] 리액트 훅(Hooks) 10가지 정리 목차useStateuseEffectuseRefuseLayoutEffectuseReduceruseContextuseMemouseCallbackuseTransitionuseDeferredValue">목차useStateuseEffectuseRefuseLayoutEffectuseReduceruseContextuseMemouseCallbackuseTransitionuseDeferredValue리액트를 쓰다 보면 결국 훅과 마주 할 수밖에 없다. 이번 글에서는 자주 쓰이는 리액트 훅 10가지를 간단한 예제와 함께 정리한다.1. useState상태값을 정의하고, 값이 바뀌면 자동으로 화면을 리렌더링해주는 가장 기본적인 훅이다.리액트에서 가장 많이 쓰인다.function Counter() { // count는 현재 .. 2026. 8. 25.
[Windows 11] 윈도우 검색창에서 웹 검색 결과 없애기 윈도우 11에서 시작 메뉴에 뭔가를 입력하면,로컬 파일뿐만 웹 검색 결과까지 같이 나타난다.쓰지도 않는 기능인데 컴퓨터 반응 속도를 느리게 만들고,특히, 사무용 컴퓨터나 노트북엔 더 체감이 클 수 있다. 이번 글에서는 레지스트리 편집을 통해, 이 웹 검색 기능을 완전히 꺼보도록 하겠다.① 레지스트리 편집기 실행Windows + R 키를 눌러 실행 창을 연 다음, regedit을 입력하고 엔터를 누른다.② 경로 이동레지스트리 편집기가 열리면 아래 경로로 이동한다. HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows ③ Explorer 키 생성Windows 항목에 마우스 우클릭 → 새로 만들기 → 키를 선택하고, 이름을 Explorer로 입력한다.④ DWORD 값.. 2026. 7. 28.
[Blender] 3D 텍스트 생성하기 (애드온) 블렌더에서 로고나 타이틀용 3D 텍스트를 한 번에 만들어주는 애드온 코드를 만들어보았다.전체 코드bl_info = { "name": "3D Text Creator", "author": "gskim", "version": (1, 0, 0), "blender": (3, 0, 0), "location": "View3D > Sidebar > 3D Text", "description": "텍스트를 입체 3D 메쉬로 생성", "category": "Add Mesh",}import bpy# 1. 속성 정의 (입력값 저장용)class TextToolProperties(bpy.types.PropertyGroup): text_input: bpy.props.StringPropert.. 2026. 7. 10.
[Unity] WebGL 커스텀 템플릿 만들기 Player Settings 안에 있는 WebGL Template 옵션을 본 적이 있을 것이다.이 설정은 빌드했을 때 웹 페이지가 어떻게 구성될지를 통째로 결정하는 부분이다.커스텀 템플릿은 프로젝트의 Assets 폴더 아래 정해진 위치에 폴더를 만드는 것으로 시작한다. Assets/ └── WebGLTemplates/     └── MyTemplate/         ├── index.html (필수)         ├── thumbnail.png (선택, 권.. 2026. 7. 4.
[Unity] WebGL에서 브라우저와 소통하기 Unity를 WebGL 플랫폼으로 빌드하면, C# 코드는 WebAssembly로 컴파일되어 브라우저 위에서 실행된다.그런데 WebAssembly는 보안상의 이유로 브라우저 API에 직접 접근할 수 없다.다시 말해, C# 코드만으로는 외부 페이지와 데이터를 주고받는 것이 불가능하다는 뜻이다. 이 한계를 해결하기 위해 Unity가 제공하는 것이 바로 .jslib과 .jspre다.지금부터 두 파일이 각각 어떤 역할을 하는지 살펴보자.C# to 브라우저 통신(.jslib)우선, Plugins 폴더(예약 폴더) 내에 {파일 이름}.jslib 파일을 생성한다.파일 이름은 상관없고, 여러 개를 생성해도 된다. 그리고, 다음과 같은 양식으로 코드를 작성한다.mergeInto(LibraryManager.library, .. 2026. 6. 14.
[Git] Git Extensions에서 서브모듈 활용하기 [Git] Git Extensions에서 커스텀 스크립트로 작업 효율 극대화하기Git의 수많은 명령어를 외우고 활용하기는 힘들기 때문에,본인은 Git Extensions라는 오픈소스 Git GUI 툴을 사용한다. 그러나, 이러한 툴을 사용하더라도,툴 자체에서 지원하지 않거나,한 번에 여러giseung.tistory.com이전 글에 이어서 Git Extensions를 심층적으로 활용해 보도록 하겠다.🔗 Git 서브모듈이란?개발을 하다 보면 여러 프로젝트에서 공통으로 사용하는 라이브러리나 설정 파일이 생긴다. 이걸 각 프로젝트에 복사·붙여 넣기 하면 수정할 때마다 모든 프로젝트를 각각 업데이트해야 하는 번거로움이 생긴다. Git 서브모듈(Submodule)은 하나의 Git 저장소 안에 다른 Git 저장소를.. 2026. 6. 7.
[Git] Git Extensions에서 커스텀 스크립트로 작업 효율 극대화하기 Git의 수많은 명령어를 외우고 활용하기는 힘들기 때문에,본인은 Git Extensions라는 오픈소스 Git GUI 툴을 사용한다. 그러나, 이러한 툴을 사용하더라도,툴 자체에서 지원하지 않거나,한 번에 여러 명령어를 복합적으로 입력해야 할 때가 있다. Git Extensions는 강력한 스크립트 기능을 제공한다.이 기능을 활용하면 자주 쓰는 쉘 스크립트나 Git 명령어를 UI 버튼이나 단축키,혹은 특정 이벤트(커밋 전/후 등)에 바인딩하여 자동화할 수 있다. 이번에 작업 생산성을 한 단계 끌어올려 보도록 하자.① 스크립트 설정 메뉴 진입도구 > 스크립트 경로로 접근하면 된다.② 스크립트 설정 항목 파악스크립트의 주요 항목을 알아보도록 하자.⚙️ ScriptName : 툴바나 메뉴에 표시될 이름이다. .. 2026. 6. 3.
[VS Code] 자주쓰는 단축키 모음 VS Code로 프로젝트를 진행할 때, 자주쓰는 단축키들을 정리한다.1. 일반 (General) 단축키 (Windows/Linux) macOS 기능 F1 F1 커맨드 팔레트 열기 Ctrl + , Cmd + , 사용자 설정 열기 Ctrl + K Ctrl + S Cmd + K Cmd + S 키보드 단축키 설정 열기 Ctrl + K Ctrl + T Cmd + K Cmd + T 컬러 테마 변경 .. 2026. 5. 31.
[VS Code] 창이 헷갈린다면? 프로젝트 별로 타이틀바 색상 입히기 모니터에 똑같이 생긴 VS Code 창이 대여섯 개씩 떠 있으면 어느 게 어느 프로젝트인지 분간이 안 된다. 이 문제는 프로젝트마다 타이틀바 색을 다르게 칠하면 간단히 해결된다.그것도 설정 파일 하나면 충분하다. 아래에서 방법을 정리해보자.① .vscode 폴더.vscode는 프로젝트 루트에 두는 폴더다.이 폴더 안에 든 설정은 오직 해당 프로젝트(워크스페이스)에서만 적용된다.게다가 이 폴더를 Git에 함께 올리면 팀원 전체가 같은 설정을 공유하게 된다.들여쓰기 규칙이든 추천 확장 프로그램이든, 누가 프로젝트를 받아도 동일한 환경에서 시작할 수 있다. 색상 설정도 마찬가지다. 팀이 정한 색 규칙을 모두가 똑같이 보게 된다.② 타이틀바 색상 바꾸기.vscode/settings.json 파일을 생성하도록 하.. 2026. 5. 30.
[Unity] URP에서 Volume(포스트 프로세싱) 적용하기 Volume은 씬에 다양한 포스트 프로세싱 효과를 적용할 수 있는 컴포넌트이다.하나의 프레임에 다양한 효과를 후처리로 덧입힐 수 있다. 기존 빌트인 렌더 파이프라인에서는 Post Processing Stack v2 였으나,URP에 완전히 통합되었다.Volume은 크게 두 가지 방식으로 동작한다.Global Volume씬 전체에 효과 적용Local Volume특정 영역(Collider 범위) 안에 들어왔을 때만 효과 적용아래에서 자세히 알아보자.① 프로젝트 설정우선, Camera 컴포넌트의 Post Processing 옵션과Universal Renderer Data 스크립트의Post-processing > Enabled 옵션이 체크되어 있는지 확인한다. 이 두 가지가 활성화되지 않으면 Volume 효과가.. 2026. 5. 28.
[Unity] TrailRenderer로 역동적인 효과 만들기 물체의 이동 경로를 따라 잔상을 남길 수 있는 TrailRenderer 컴포넌트에 대해 알아보자. 미사일의 잔상, 검의 휘두름 효과, 혹은 캐릭터가 빠르게 달릴 때 생기는 효과 등을 구현할 때 유용하다. 1. TrailRenderer란?오브젝트가 이동한 경로를 따라 동적으로 메쉬(Mesh)를 생성하는 컴포넌트이다.단순히 선을 긋는 것이 아니라, 시간에 따라 서서히 사라지게 하거나너비를 조절하는 등 다양한 시각적 연출이 가능하다.2. 프로퍼티 살펴보기프로퍼티설명Width궤적의 굵기를 시간에 따라 결정. 가로축은 궤적의 시작(0.0)부터 끝(1.0)까지, 세로축은 너비.Time궤적이 화면에 유지되는 시간(초). 생성된 지 해당 시간만큼 지나면 사라짐.Min Vertex Distance새로운 정점을 생성할 최.. 2026. 3. 10.
[VS Code] 코딩 속도를 높이는 기술, 코드 스니펫(Code Snippet) 이전에 Visual Studio에서 활용할 수 있는 Code Snippet 기능을 소개한 적이다.간단히 말해, 자주 쓰는 코드 뭉치를 저장해두고 꺼내 쓰는 기능이다.https://giseung.tistory.com/49 [Visual Studio] 코드 조각으로 빠르게 코딩하기 - Code Snippet코딩을 하다보면 반복적으로 작성하게 되는 코드들이 있다.예를 들어, 반복문을 사용하기 위해 for문을 작성하거나, 디버깅을 위해 Debug 함수를 작성하는 경우 등이 있을 것이다.이런 코드들을giseung.tistory.com이번에는 VS Code에서 적용해보도록 하자.① 스니펫 정의 파일(.json) 생성File > Preferences > Configure Snippets를 클릭한다.원하는 언어를 선택.. 2026. 3. 2.
[Unity] 오브젝트가 꺼져도 멈추지 않는 코루틴 (CoroutineManager) 유니티에서는 코루틴(Coroutine)을 실행한 GameObject가 비활성화되면 코루틴도 함께 멈춰버리는 문제가 있다.오브젝트의 활성 상태와 상관없이 끝까지 실행되어야 하는 로직에서는, 이 방식이 꽤나 걸림돌이 된다. 따라서, 어디서든 접근 가능하고, 오브젝트 상태에 영향을 받지 않는 스크립트를 작성해보았다.using UnityEngine;using System.Collections;public class CoroutineManager : MonoBehaviour{ // Instance private static CoroutineManager _instance; public static CoroutineManager Instance { get { .. 2026. 3. 2.
[Unity] 정교한 UI 클릭을 위한 커스텀 Image 구현 유니티의 UI는 Rect 모양에 맞게 직사각형 형태의 클릭 영역만을 지원한다. 이 때문에 외곽에 투명한 영역이 많은 이미지를 사용할 때, 의도치 않게 빈 공간이 클릭되는 불편함이 발생한다. 하지만 Image의 alphaHitTestMinimumThreshold 속성을 조절하면 알파 값을 기준으로 특정 수치 이하의 투명 영역은 클릭을 무시하도록 설정할 수 있다. 매번 스크립트로 제어하는 번거로움을 줄이기 위해서 Inspector에서 조절할 수 있는 커스텀 클래스를 구현해보았다.구현 스크립트using UnityEngine;using UnityEngine.UI;#if UNITY_EDITORusing UnityEditor;using UnityEditor.UI;#endif[AddComponentMenu("UI/A.. 2026. 2. 28.
[Windows] 윈도우 배치 파일을 CMD 명령어로 등록하기 개발자라면 반복되는 작업이나 복잡한 실행 과정을 줄이기 위해배치 파일(.bat)을 한 번쯤은 만들어 봤을 것이다. 물론 배치 파일을 실행하는 것만으로도 작업 속도는 개선된다. 하지만 매번 해당 파일경로로 이동하는 것도 결과적으로는 또 다른 비효율을 초래한다. 만약 CMD나 터미널 환경에서 명령어만으로 해당 파일을 즉시 실행할 수 있다면, 작업 생산성을 한 단계 더 격상시킬 수 있다.① 배치 파일 작성우선 실행하고자 하는 명령어를 포함한 배치 파일을 생성한다.@echo offecho Hello Worldpause단순히 Hello World를 콘솔에 출력하는 명령어를 작성했다.※ 배치 파일에 한글이 포함될 경우, 깨질 수가 있기 때문에저장할 때는 ANSI 인코딩으로 저장하는 것을 추천한다.② 배치 파일 전용.. 2026. 2. 25.
[Windows] 윈도우 11 작업 표시줄 우클릭으로 즉시 작업 끝내기 업무나 게임 중에 프로그램이 멈추면 가장 먼저 찾게 되는 것이 '작업 관리자'이다.프로그램을 강제 종료하기 위해, 수많은 목록 사이에서프로세스를 찾아 '작업 끝내기'를 눌러야한다.이러한 과정은 생각보다 번거롭다. 윈도우 11에서는 23H2버전 이후부터 작업 표시줄에'작업 끝내기' 메뉴를 넣을 수 있도록 기능이 추가됐다. 별도의 프로그램 설치 없이 설정 한가지만 켜주면, 즉시 활성화 할 수 있다. 단축키 Win + I를 눌러 설정 창을 연다.시스템 > 고급 탭으로 이동한다.목록 중 '작업 끝내기' 항목을 찾아 스위치를 '켬'으로 바꾼다.이제 작업 표시줄의 앱 아이콘에 마우스 우클릭을 하면'작업 끝내기'가 생긴 것을 확인할 수 있다. 이 기능은 프로세스를 즉시 종료하므로, 작업 중인 데이터가 저장되지 않을 .. 2026. 2. 24.
[Unity] 프레임 깎아먹는 if문 대체하기: 쉐이더 그래프 Keyword 노드 사용법 쉐이더 그래프를 활용하다 보면, 특정 조건에 따라결과값을 다르게 출력해야 하는 상황에 직면하게 된다.이때, 가장 직관적으로 선택하게 되는 방식이Branch 노드나 If문을 활용한 동적분기(Dynamic Branching) 처리다.위와 같은 방식이 동적분기 처리의 예시이다.Boolean이라는 프로퍼티의 값에 따라 초록색 또는 빨간색을 출력한다. 하지만 쉐이더 내에서의 조건문 사용은일반적인 CPU 연산과 달리 성능 측면에서 상당한 리스크를 동반한다.GPU는 수많은 데이터를 병렬로 처리하는 구조를 가지는데,픽셀 단위로 실시간 조건 검사를 수행하게 되면 GPU의 병렬 처리 효율이 급격히 저하되기 때문이다. 따라서 런타임 중에 실시간으로 변할 필요가 없는 설정값이라면,정적분기(Static Branching)를 활.. 2026. 2. 22.
[Unity] 쉐이더 그래프 경로 변경하기 쉐이더 그래프(Shader Graph)를 생성해서, 머티리얼(Material)에 적용할 때쯤 보면,항상 경로가 "Shader Graphs/(파일 이름)"인 것을 확인할 수 있다.코드로 작성할 때는 경로를 직접 입력할 수 있었지만,쉐이더 그래프는 코드 방식도 아니다보니 경로를 강제로 설정해버린다.이렇게 되면, 쉐이더 그래프가 많아질수록 분류면에서 불편해진다. 그렇다면 경로를 변경할 수 있는 방법은 없을까?물론 있다.일단 쉐이더 그래프를 만들어서 이걸 메모장으로 열어보자."m_Path"를 검색하면 현재 경로를 찾을 수 있다.이 부분을 원하는 대로 바꿔보자. 그러면 아래와 같이 경로가 변경된 것을 볼 수 있다.쉐이더 그래프 노드를 변경 및 저장한다고 해서,다시 초기화되지 않으니 걱정하지 않아도 된다. 2026. 2. 21.
[Unity] MeshLOD로 간편하게 LOD 적용하기 LOD를 간편하게! MeshLOD🔎집중 탐구카메라에서 멀리 떨어져 있는 물체는, 굳이 정교하게 그릴 필요가 없기 때문에 LOD(Level of Detail) 기법을 적용하곤 한다.이 기법을 통해, 렌더링 성능을 향상 시킬 수 있다.유니티에서는 LODGroup 컴포넌트를 게임 오브젝트에 부착하여,화면에서 오브젝트가 차지하는 비율을 기준으로오브젝트의 렌더링 품질을 결정한다.다만, 디테일을 깎아낸 하위 모델들을 수동으로 제작해야 하고,여러 모델들을 메모리에 올려두어야 한다. MeshLOD는 이러한 번거로운 과정을 탈피하고,메모리 문제 또한 개선한 방식이다.자세히 알아보도록 하자.① MeshLOD 적용하기Model Import Settings에서 Generate Mesh LODs를체크해주면 자동 적용이 된다... 2026. 2. 21.
[Unity] 수포자를 위한 게임 수학 : 좌표 변환과 버텍스 변환 (2) 알쓸유잡 8월 : 📐수포자를 위한 게임수학 4부뷰 행렬 (View Matrix)원근 투영행렬 (Perspective Projection Matrix)FOV(Field of View) / Near / Far과 같은 개념이 포함된다.① 카메라를 원점으로 하여 Near와 Far, 4개의 지점(t, b, l, r)을 정의한 것이다.② t와 b, l과 r은 절대값이 동일하므로 항상 0이다.③④ 2026. 2. 10.
[Unity] 수포자를 위한 게임 수학 : 좌표 변환과 버텍스 변환 (1) 알쓸유잡 8월 : 📐수포자를 위한 게임수학 4부로컬 → 월드 → 뷰 → 프로젝션 → NDC → 디스플레이(모니터 등)의 변환 과정을월드-뷰-프로젝션 트랜스폼(World-View-Projection) 또는 모델-뷰-프로젝션 트랜스폼(Model-View-Projection)이라고 한다.Local Space (Model Space)원점으로부터의 상대 좌표를 기반으로 메쉬의 형태가 구성된다.World SpaceTransform.localToWorldMatrix 프로퍼티는로컬 공간의 좌표를 월드 공간의 좌표로 변환해주는 행렬이다.View SpaceCamera.worldToCameraMatrix 프로퍼티는월드 공간에 있는 좌표를 카메라 공간으로 변환해주는 행렬이다Z축은 카메라의 뒤쪽 방향이므로 정면은 (-) 부호.. 2026. 2. 4.
[Unity] 수포자를 위한 게임 수학 : 트랜스폼과 행렬 알쓸유잡 8월 : 📐수포자를 위한 게임수학 4부3D 이동 + 스케일 + 회전 (동차좌표)유니티에서는 4x4 행렬을 활용해 위치, 회전, 스케일을 한번에 처리한다.역행렬 (Inverse Matrix)행렬이 어떤 변환을 하면, 역행렬은 그 변환을 정확히 거꾸로 되돌린다.Transform의 행렬 Transform.localToWoldMatrix오브젝트의 월드 트랜스폼Transform.transpose전치 행렬Transform.inverse역행렬회전과 이동을 함께 반영하기 위해 두 역행렬을 곱한다. 2026. 1. 1.
[Unity] 수포자를 위한 게임 수학 : 노멀맵(Normal Map) 알쓸유잡 5월 : 📐수포자를 위한 게임수학 3부노멀맵(Normal Map)은 디테일한 굴곡을 표현하기 위한 맵을 의미한다.픽셀 단위로 조명 연산의 디테일을 추가해준다.노멀 매핑 (Normal Mapping)노멀맵을 실제 오브젝트에 적용하는 것을 노멀 매핑이라고 한다.버텍스가 아닌 사이의 표면은 보간 처리하여 노멀을 구한다.노멀맵이 파랗게 보이는 이유노멀(X, Y, Z)의 각 축은 -1 ~ 1 사이의 값을 가지나,컬러(R, G, B)의 범위는 0 ~ 1이므로 범위를 재조정하여 저장한다.[+] -1 → 0, 0 → 0.5, 1 → 1이때, X축과 Y축은 -1 ~ 1의 범위를 가지나, Z축은 0 ~ 1 값을 가진다.[+] 면의 방향을 의미하므로 음수 값(-1)을 가질 수 없다.따라서, Z축(=B) 값이 항상.. 2025. 12. 22.
[Unity] 수포자를 위한 게임 수학 : 행렬 알쓸유잡 5월 : 📐수포자를 위한 게임수학 3부행렬은 수 또는 식들을 직사각형 모양으로 배열하여 괄호로 묶어 나타낸 것이다.유니티에서 Transform의 Position, Rotation, Scale은모두 내부적으로 행렬로 관리된다. 즉, 모든 오브젝트는 Matrix를 가진다.행렬의 곱셈벡터의 변환벡터에 행렬을 곱하여 변환할 수 있다.열 기준 vs 행 기준유니티 API는 열 기준 행렬(Column Major)이다.전치 행렬 (Transpose Matrix)열 기준 vs 행 기준 (2)회전 행렬Transform.localToWorldMatrix (Matrix4x4)게임 오브젝트의 로컬 공간에서 월드 공간으로좌표를 변환하는 데 사용되는 행렬(Matrix4x4)을 반환한다.직교 행렬 (Orthogonal M.. 2025. 12. 17.
[Unity] 수포자를 위한 게임 수학 : 삼각함수의 덧셈정리 알쓸유잡 4월 : 📐수포자를 위한 게임수학 2부두 각을 더하거나 뺀 각에 대한 삼각함수 값을 구할 때는,아래의 삼각함수의 덧셈정리를 활용할 수 있다.유도 #1유도 #2유도 #3유도 #4 2025. 11. 16.
[Unity] 수포자를 위한 게임 수학 : 벡터의 내적 알쓸유잡 4월 : 📐수포자를 위한 게임수학 2부벡터의 내적은 두 벡터를 곱하는 연산이지만, 그 결과는 스칼라이다.주로 쉐이더에서 빛과 면의 각도에 따라 밝기를 결정할 때 사용한다.내적의 증명 / 유도 #1내적의 증명 / 유도 #2내적의 증명 / 유도 #3 2025. 11. 12.
반응형