Bill explains some of the ways that the Vertex Shader can be used to improve performance by taking a fast path through the Vertex Shader rather than generating vertices with other parts of the pipeline in this AMD technology presentation from the 2014 Game Developers Conference in San Francisco March 17-21. Check out more technical presentations at http://developer.amd.com/resources/documentation-articles/conference-presentations/
These slides describes about rendering engine, types of rendering engine and how Webkit rendering works.
A rendering engine (also called layout engine or web browser engine) is a software component that takes marked up content (like HTML, XML, image files, etc.) and formatting information (like CSS, XSL, etc.) and displays the formatted content on the screen.
Bill explains some of the ways that the Vertex Shader can be used to improve performance by taking a fast path through the Vertex Shader rather than generating vertices with other parts of the pipeline in this AMD technology presentation from the 2014 Game Developers Conference in San Francisco March 17-21. Check out more technical presentations at http://developer.amd.com/resources/documentation-articles/conference-presentations/
These slides describes about rendering engine, types of rendering engine and how Webkit rendering works.
A rendering engine (also called layout engine or web browser engine) is a software component that takes marked up content (like HTML, XML, image files, etc.) and formatting information (like CSS, XSL, etc.) and displays the formatted content on the screen.
2019년 4월 27일에 있었던 한국게임학회 인공지능분과 두번째 모임에 진행했던 <Tensorflow 2.0 튜토리얼 - RNN> 강연자료입니다.
RNN 을 처음 접하는 분들을 위해 RNN 의 기본 개념을 짚어보며, Google Colab Sample Code 를 통해 2.0 에서 RNN 을 사용하는 방법을 간단하게 살펴봅니다.
This article contains information about performance optimization of Unity3D games for android. Different solutions provided both for CPU and GPU. Also here you can find methodology which will help you to detect performance problems, analyze them and perform appropriate optimization.
Use a game engine to create a video game. Its reusable components provide the general functionality. Define resources and building blocks.
What are the key elements of a game engine?
Modelling by Example is a set of practices that combine BDD (Behaviour Driven Development) and DDD (Domain Driven Design) techniques to create a workflow that directly drives code from a starting point of user requirements. We will see how a simple feature can be defined via conversation with stakeholders, captured as automatable requirements, and expressed directly in the object model using tools such as Behat and PhpSpec.
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례Hwanhee Kim
2017년 4월 26일, NDC2017 발표자료입니다.
콘텐츠 제작은 게임 개발에서 많은 노력과 시간 투자를 필요로하는 작업입니다. 최근 폭발적인 관심을 받고 있는 딥러닝을 통해 여기에 드는 시간을 크게 줄일 수 있습니다. 이 발표에서는 VAE(Variational AutoEncoder)를 이용한 모방을 통한 콘텐츠 생성 기법에 대해서 다룹니다.
Introduction to Unity3D and Building your First GameSarah Sexton
In Phase One, we will cover the basics of using the Unity editor’s interface, customizing the workspace, building a 3D environment, and adding sound effects.
In Phase Two, we will import a player character asset, learn about Animator Controllers, make animations, set up physics and gravity, and add player movement scripts.
In Phase Three, we will set up our Camera and write a script to make the camera follow our player character.
2014년 6월 21일(토)
차세대 컴퓨팅 환경을 위한 기술 세미나
(2부) WAYLAND 기반 윈도우 매니저 소개
- 윈도우 매니저 최신 동향 소개
- 오픈 소스 기반 UI/UX 소프트웨어 아키텍처 소개(컴포지터/쉘/위젯 엔진..)
- 윈도우 매니저 역할 및 기본 동작 원리
NEMO-UX TEAM
http://nemoux.net
2019년 4월 27일에 있었던 한국게임학회 인공지능분과 두번째 모임에 진행했던 <Tensorflow 2.0 튜토리얼 - RNN> 강연자료입니다.
RNN 을 처음 접하는 분들을 위해 RNN 의 기본 개념을 짚어보며, Google Colab Sample Code 를 통해 2.0 에서 RNN 을 사용하는 방법을 간단하게 살펴봅니다.
This article contains information about performance optimization of Unity3D games for android. Different solutions provided both for CPU and GPU. Also here you can find methodology which will help you to detect performance problems, analyze them and perform appropriate optimization.
Use a game engine to create a video game. Its reusable components provide the general functionality. Define resources and building blocks.
What are the key elements of a game engine?
Modelling by Example is a set of practices that combine BDD (Behaviour Driven Development) and DDD (Domain Driven Design) techniques to create a workflow that directly drives code from a starting point of user requirements. We will see how a simple feature can be defined via conversation with stakeholders, captured as automatable requirements, and expressed directly in the object model using tools such as Behat and PhpSpec.
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례Hwanhee Kim
2017년 4월 26일, NDC2017 발표자료입니다.
콘텐츠 제작은 게임 개발에서 많은 노력과 시간 투자를 필요로하는 작업입니다. 최근 폭발적인 관심을 받고 있는 딥러닝을 통해 여기에 드는 시간을 크게 줄일 수 있습니다. 이 발표에서는 VAE(Variational AutoEncoder)를 이용한 모방을 통한 콘텐츠 생성 기법에 대해서 다룹니다.
Introduction to Unity3D and Building your First GameSarah Sexton
In Phase One, we will cover the basics of using the Unity editor’s interface, customizing the workspace, building a 3D environment, and adding sound effects.
In Phase Two, we will import a player character asset, learn about Animator Controllers, make animations, set up physics and gravity, and add player movement scripts.
In Phase Three, we will set up our Camera and write a script to make the camera follow our player character.
2014년 6월 21일(토)
차세대 컴퓨팅 환경을 위한 기술 세미나
(2부) WAYLAND 기반 윈도우 매니저 소개
- 윈도우 매니저 최신 동향 소개
- 오픈 소스 기반 UI/UX 소프트웨어 아키텍처 소개(컴포지터/쉘/위젯 엔진..)
- 윈도우 매니저 역할 및 기본 동작 원리
NEMO-UX TEAM
http://nemoux.net
2014년 6월 21일(토)
차세대 컴퓨팅 환경을 위한 기술 세미나
(1부) 미래 컴퓨팅 환경 소개
- 차세대 입출력 장치 소개(디스플레이/인터페이스)
- 최신 컴퓨터 그래픽 기술 소개(2D/3D)
- 차세대 컴퓨팅 환경 소개(wearable computing vs everywhere computing)
NEMO-UX TEAM
http://nemoux.net
Presentation from #andevcon by Anna Schaller
Peter van der Linden, Android Technology Evangelists from the Developer Platforms and Services team at Motorola Mobility. More info at http://developer.motorola.com
**** 도서관 프로그램 완성 ㅋ(서버(관리자), 클라이언트)
2015/7/22 ~ 2015/8/6 (약 2주)
개발자 : 안병현, 한골드 @한정수
사용한 언어 : 개발자
- JAVA JDK 1.8(Swing, Socket) : 한정수
- C#(WPF) : 안병현
- C/C++(Socket, DLL-Socket) : 안병현, 한정수
* 기능
관리자
(도서 추가/도서 검색/신청 도서 구입/고객 추가/고객 찾기/가입 허가/지출 및 수입 확인)
클라이언트
(도서 검색/대여/반납/도서 신청/회원 가입/로그인)
* Linux(Server)
- Cent OS Release 6.1
- Mysql(5.1.73, RDB)
- GCC version-4.4.7
*VM으로 돌리지 않음.
* 구성
1. JAVA(Swing, Socket)
자바 Swing에 Socket으로 서버소켓과 연결하여 입력된 명령(Command)에 따라 서버에서
해당하는 데이터를 송수신함.
2. C#
C# 소스에서는 주로 UI를 만들기 위한 소스를 만들었고, 소켓 통신을 C에 의존하였음.
이른 바인딩으로 C/C++로 만든 DLL을 참조하였고, 마찬가지로 입력된 명령에 따라 서버에서
해당하는 데이터를 송수신함.
3. C(리눅스 서버측)
-1 JAVA
자바와 통신하는 소스는 do~while 구문으로 하나의 명령에 하나의 소켓으로 일대일 방식으로 구성
* 구분자 '/'
-2 C#
C#과 통신하는 소스는 while 구문으로 해당 클라이언트에 하나의 쓰레드를 할당하였고,
전체 클라이언트 소켓관리는 int형 배열을 만들어 관리함.
* 구분자 ','
* 권장 사양
- JDK 설치
- .NET Framework 설치
- Windows 지원하는 OS
* 생각해니까 굉장히 쓸모 없는 도서관 프로그램임
* 포트 포워딩을 하지않아서 그런지 다른 네트워크 망에서는 리눅스 서버에 접근하지 못함(방화벽을 허물어도 안됨 ㅅㅂ..)
+ C/C++로 DLL 어셈블리 만드는게 처음이라서 개짜증났음. 게다가 C가 CLS에 맞지 않아서 자료형 맞추려다 보니 미치는줄
+ Server socket 예제가 채팅만 줠라게 많아서 미치는줄
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~YEONG-CHEON YOU
Windows 10의 UWP 앱을 개발하면 모든 Windows 10 디바이스에서 앱을 작동할 수 있습니다.
이 UWP 앱을 C++로 개발할 수 있습니다. C++로 앱을 개발하면 크로스 플랫폼 지원의 유리함, 기존 코드의 재활용, 성능향상 등의 이점이 있습니다. 본 세션에서는 몇 가지 예를 들어 C++로 UWP 앱을 개발하는 방법을 소개하며 특히 win32와 C++을 사용하던 개발자가 쉽게 UWP 앱 개발에 적응할 수 있도록 돕습니다.
2. 윈도우 매니저 소개 WAYLAND 소개 X vs WAYLAND 오픈 소스 기반 UI/UX 플랫폼 기본 UI/UX 플랫폼 구조 필수 오픈소스 프로젝트 윈도우 매니저 구조 및 기본 동작 원리 컴포지터/쉘 역할 기본 동작 과정 WAYLAND/WESTON 구조 스터디 진행 계획
3.
4. 여러 어플리케이션이 하나의 입/출력 장치를 공유 데스크탑 환경 vs 스마트폰 환경
APPLICATION
WINDOW
WINDOW
APPLICATION
WINDOW
APPLICATION
WINDOW
WINDOW
WINDOW
5. 윈도우 프로토콜 윈도우 서버/클라이언트 간의 통신 규약 X protocol, WAYLAND protocol, ... 컴포지터 (compositor) 여러 윈도우 화면을 하나의 스크린에 출력하기 위해 합성 입력 장치로부터 들어온 이벤트를 적절한 윈도우로 전달 … 쉘 (shell) 윈도우 화면의 위치나 크기 변경 기능 제공 시작 메뉴, 바탕화면, 스크린세이버 제공 윈도우 포커스 관리 및 전환 기능 제공 …
6. WAYLAND 의 시작 2008년 레드햇의 개발자였던 Kristian Høgsberg (이하 krh) 의 개인 프로젝트로 시작 (현재 krh 는 인텔에서 근무) WAYLAND 의 목표 X 윈도우 프로토콜을 완전히 대체 데스크탑 환경 뿐 아니라 다양한 스마트 장치 효과적으로 지원 WAYLAND 의 특징 오픈 소스를 최대한 활용/내부를 최소한으로 유지 로컬 기반 (유닉스 도메인 소켓)
■파일디스크립터 공유, 레퍼런스 기반 버퍼, … 컴포지팅 API 만 제공 (Direct Rendering 과 CSD (Client-Side Decoration 지원))
7. 윈도우 서버/클라이언트 프로토콜 윈도우 화면 생성 및 갱신 (wl_surface, wl_buffer, …) 입력 장치 이벤트 전달 (wl_seat, wl_keyboard, wl_pointer, …) 윈도우 위치/크기 변경, 최대/최소화 (wl_shell_surface, xdg_surface, …) 윈도우 서버/클라이언트 기본 라이브러리 기본 프로토콜 정의 유닉스 도메인 소켓을 이용한 네트워크 통신 제공 기본 프로토콜을 위한 소켓 통신에 필요한 함수 제공 WESTON 기능 검증을 위한 레퍼런스 컴포지터/쉘
8. 오래된 X 를 버리고 새롭게 시작하자! 기능적인 차이(x), 구조적인 차이(..) 하위 호환성 유지/새로운 기능 수용 프로토콜/코드 복잡도 증가
X client
X client
X server
compositor
Kernel
KMS
evdev
wayland client
wayland client
wayland compositor
Kernel
KMS
evdev
9.
10. 일반적인 어플리케이션(GUI) 개발 형태 APPLICATION vs TOOLKIT vs WINDOW MANAGER
GTK+/QT/…
drm-backend
application
(GTK+)
application (wayland)
application
(drm)
application
(QT)
wayland-backend
shell (gnome-shell, plasma, …)
kernel (drm, fb, kms, evdev, …)
GPU, KEYBOARD, MOUSE, …
drm-backend
…-backend
compositor (mutter, kwin, …)
12. PIXMAN 픽셀 기반 이미지 관리 CPU 를 이용한 렌더링에 주로 활용 (FB 백엔드) http://www.pixman.org/ CAIRO 벡터 그래픽 지원 레스터라이징 vs 벡터 http://cairographics.org/ PANGO 폰트 레이아웃 지원 http://www.pango.org/
13.
14. SURFACE 윈도우 BUFFER 윈도우 화면 내용 VIEW 윈도우 위치 속성 SHELL_SURFACE 윈도우 관리 (위치, 크기, 속성, …)
WAYLAND/WESTON
weston_surface
weston_view
shell_surface
weston_view
weston_view
shell_surface
shell_surface
CLIENT
wl_surface
wl_shell_surface
wl_surface
wl_buffer
wl_compositor
weston_compositor
wl_surface
15. 윈도우 생성 (클라이언트 컴포지터) 윈도우 화면 갱신 (클라이언트 컴포지터) 공유메모리 버퍼/DRM 버퍼 전달 결과 화면 갱신 (컴포지터 커널 장치) 모든 윈도우의 현재 버퍼, 위치, 크기를 이용하여 결과 화면 생성
CLIENT
BUFFER
WAYLAND/WESTON (screen)
WINDOW
CLIENT
BUFFER
WINDOW
shared memory buffer
DRM buffer
16. 렌더링 메모리 기반 vs 하드웨어가속 기반
SCREEN
GPU
framebuffer
framebuffer
GUI framework (without opengl)
GUI framework
(with opengl)
WINDOW
WINDOW
CPU
17. 컴포지팅 여러 화면을 하나의 화면으로 합쳐주는 것
■SCENE GRAPH 각 화면의 위치 정보 관리 다양한 그래픽 관련 분야에서 활용
■윈도우 매니저 여러 윈도우를 하나의 프레임버퍼로 합성
■위젯 엔진 여러 위젯을 하나의 윈도우 화면으로 합성
■…
window
window
framebuffer
widget
widget
widget
widget
window
widget
widget
window
copy
copy
copy
copy
18. 입력 이벤트 수집 (장치 커널 컴포지터) 입력 이벤트 전달 (컴포지터 클라이언트) 윈도우 매니저에 바인딩되어있는 이벤트 우선 처리 포커스(window)를 소유 중인 클라이언트에게 해당 이벤트 전달
CLIENT
WAYLAND/WESTON (screen)
WINDOW
CLIENT
WINDOW
wl_keyboard
wl_pointer
19. 포커스(focus) 모델 Click to Focus 마우스(혹은 터치)로 클릭 Focus Follows Mouse 마우스 포인터의 현재 위치 이용 Sloppy Focus 패널이 아닌 윈도우만 포커스 그랩(grab) 인터페이스 마우스 버튼 (or 터치) 다운 + 모션 … + 업 이벤트 전달 방식 윈도우 이동/크기 변환/…, 드래그&드롭, … 일반 사용자에게 익숙한 인터페이스 방식
SCREEN
WINDOW
WINDOW
press
motion
release
21. 키보드/마우스/멀티터치 지원 UDEV 기반 장치 검색 EVDEV/MTDEV 프로토콜 지원
CLIENT
WAYLAND/WESTON
kernel
touch
mtdev
udev
seat
touch
pointer
mouse
evdev
wl_seat
wl_touch
wl_pointer
grab
(default)
grab (default)
button motion
key
default
move
resize
…
keyboard
keyboard
wl_keyboard
evdev
grab (default)
touch motion
22. 다양한 개발 언어/프로토콜/툴킷 지원 가능
wayland core interface
xdg shell interface
wl_surface
wl_buffer
wl_seat
…
xdg_surface
xdg_popup
…
GTK+/QT/…
X11-backend
wayland-backend
X11 protocol
EGL
mesa
nvidia opengl driver
…
xserver
xwayland
application (GTK+)
application
(QT)
application
(wayland)
application (OpenGL-wayland)
kwin
mutter
weston
application
(X11)
GLX
application
(OpenGL-X11)
23.
24. 1주차 : 출력 과정 이해 컴포지팅 동작 원리 이해 공유 메모리 기반 컴포지팅 과정 이해 (shm, pixman, …) 하드웨어 가속 기반 컴포지팅 과정 이해 (opengl/egl, drm, …) WAYLAND/WESTON 기반 컴포지팅 과정 이해 2주차 : 입력 과정 이해 입력 장치 관리 이해 (udev, evdev, …) 포커스 모델 이해 (마우스, 키보드, 멀티터치, …) WAYLAND/WESTON 기반 입력 장치 동작 과정 이해 WAYLAND/WESTON 기반 가상 키보드/한글 입력 동작 과정 이해
25. 3주차 : 렌더링 최적화 기술 분석 SCENE GRAPH 동작 과정 분석 (레이어 관리, 데미지/클리핑 관리, …) 더블 버퍼링, 디스플레이 동기화, 하드웨어 플레인 동작 과정 분석 OpenGL 확장 기능 분석
■buffer_age, unpack_subimage, swap_buffers_with_damage, … 4주차 : WAYLAND 기반 윈도우 매니저 분석 서페이스 관리 분석 (윈도우 활성화, 서브서페이스, …) 그랩 인터페이스 분석 (윈도우 이동, 크기 변환, …) 데이터 인터페이스 분석 (drag & drop, selection, clipboard, …) 쉘 인터페이스 분석 (wayland/xdg shell, workspace, …) 확장 프로토콜 분석 (subsurface, presentation, …)
26. 5주차 : UI/UX 플랫폼 분석 WAYLAND 기반 UI/UX 플랫폼 구조 분석 툴킷 엔진 지원 분석 (GTK, QT, …) X 프로토콜 지원 분석 (xwayland) 어플리케이션 지원 분석 (브라우저, 영상 재생, …) WAYLAND 기반 윈도우 매니저 소개
■weston, mutter, kwin, hawaii, ...