검색결과 리스트
분류 전체보기에 해당되는 글 16건
- 2017.06.29 언리얼 엔진4
- 2017.06.25 1. OpenGL의 기초
- 2017.03.28 ffmpeg with Code::Blocks
- 2016.07.20 ubuntu 12.04 에서 eclipse 설치 이후 오류 발생
- 2016.05.16 ffmpeg player with visual studio 2013
- 2016.01.27 HTML&JavaScript/IE에서 로컬 프로그램 실행
- 2016.01.27 2.0. centOS 7에 NGINX 설치 및 기본 설정
- 2016.01.22 C++/ cap 파일 만들기
- 2016.01.22 C++/ 레지스트리 키 확인
- 2016.01.22 1.0. 우분투에 NGINX 설치
글
언리얼 엔진4
1. 처음 공개 당시에는 월정액으로 사용 가능했지만 현재는 무료로 사용가능, 소스코드까지 공개하고 있기 때문에 게임을 개발하는 개발자뿐만 아니라 게임엔진을 만들려는 사람에게도 유용할 듯하지만, 엔진의 스케일이 크기때문에 분석은 쉽지 않을 듯. (일정 금액 이상 수익 발생 시 로열티를 지불)
2. 엔진은 결국 툴이다 보니 사용방법을 익히고 익숙해 지는데 우선 순위
3. 블루프린트라는 것을 사용하여 비주얼 스크립팅이 가능하다고 하지만 전반적인 프로그래밍 로직에 익숙하지 않다면 사용하는 것이 힘들듯, 결국 특정 API 사용 하는데 직접 코드를 입력하는 것이 아닌 불러오기? 선택? 과 같은 방식으로 사용, 결국 제한된 프로그래밍, 모든 로직을 구성해 줘야함. (익숙해질것)
4. 엔진의 주 언어는 c++, 기능을 만들어서 블루프린트로 불러와서 사용하거나 엔진을 직접 커스터마이징할 수 있음, 물론 엔진에 대한 구조적인 분석과 기능적인 분석이 완료된다면!
5. 엔진에서 제공하는 기능만으로도 단순한 맵의 구현이 가능함. 바닥을 만들고 벽을 쌓아 성 같은 건축물의 제작이 가능하나...어차피 맵에 사용되는 메쉬 데이터는 디자이너가 만들테지만 그래도 연습게임 제작 시 간단한 맵을 만들어 볼 것임.
*언리얼 엔진 1차 학습 순서 (에픽사에서 제공하는 비디오 튜토리얼을 우선)
1. 에디터 소개 : 전반적인 기능 파악
2. 레벨제작 소개 : 간단한 맵 제작 가능
3. 머터리얼 : 머터리얼의 기본적인 지식 습득
4. 블루프린트 입문 : 블루프린트의 기본 동작 방법 숙지
5. UMG : UI 제작을 위한 UMG의 개념 학습
6. 샘플 게임 제작 1 : 치킨런
7. 샘플 게임 제작 2 : 3인칭 게임
8. 샘플 게임 제작 3 : 미로 탈출
설정
트랙백
댓글
글
1. OpenGL의 기초
- *OpenGL 4.3 학습
- GPU
: 쉐이더라 불리는 작은 프로그램을 실행하는 쉐이더 코더(다수의 작은 프로그래밍이 가능한 프로세서)로 이루어져 있음
- 그래픽스 파이프 라인
: 고정함수 스테이지와 프로그래밍 가능 스테이지로 나뉘며
: 붉은 글씨는 프로그래밍 가능한 스테이지.
: 버텍스 패치 -> 버텍스 쉐이더 ->
테셀레이션 컨트롤 쉐이더 -> 테셀레이션 -> 테셀레이션 이벨류에이션 쉐이더
-> 지오메트리 쉐이더 -> 래스터라이제이션 -> 프레그먼트 쉐이더 -> 프레임버퍼 동작
- 코어 프로파일과 호환성 프로파일이 존재
: 호환성 프로파일은 OpenGL 1.0 까지의 모든 버전과 하위 호환성 유지
: 새로운 애플리케이션을 개발할 때 코어 프로파일 사용 권고
- 버퍼 및 텍스처
: 렌더링 시에 사용할 정보를 저장
: 쉐이더나 다른 고정 파이프라인 블록들이 파이프라인 내에서 버퍼나 텍스처 등으로부터 추가 데이터를 받아 처리함
- 프리미티브
: OpenGL 렌더링의 기본단위
: 기본 렌더링 가능 타입은 점, 선, 삼각형
: 복잡한 서비스를 많은 수의 삼각형으로 분할하고 OpenGL 로 보내서 래스터라이저 하드웨어 가속기를 사용하여 렌더링
: 레스터라이저는 3차원으로 표현된 삼각형을 화면에 그렬질 일련의 픽셀로 변화하는 전용 하드웨어
- 버텍스
: 좌표 공간상의 하나의 점
- 그래픽스 파이프 라인
: 프론트엔드, 버텍스와 프리미티브를 처리하여 점, 선, 삼각형으로 구성하고 이들을 래스터라이저에 보낸는 역할, (프리미티브 어셈블리
: 레스터라이저 이후에는 지오메트리가 벡터 형태에서 대량의 각각의 픽셀로 변환됨
: 백엔드, 깊이 및 스텐실 테스트, 프래그먼트 쉐이딩, 블렌딩, 출력 이미지 갱신 등의 작업
설정
트랙백
댓글
글
ffmpeg with Code::Blocks
1. 목적 : 크로스 플랫폼 어플리케이션 개발 환경 구축
2. 주 운영 체제 : 윈도우 OS
3. 주 사용 언어 : C/C++
4. 주 사용 라이브러리 : SDL2 / FFMPEG / OpenCV / OpenGL
5. 주 사용 IDE 개발 툴 : Code::Blocks
6. 주 사용 컴파일러 : GCC
7. 기타 : MinGW
*윈도우7 64bit OS 환경에서 Code::Blocks 및 MinGW 설치
4.1 SDL2 환경 셋팅
-다운로드 : https://www.libsdl.org/download-2.0.php
Development Libraries > Windows > SDL-devel-2.x-mingw.tar.ga(MinGW 32/64 bit)
-코드블럭 셋팅
: build options > Linker settings > Other Linker options
-lmingw32 -lSDL2main -lSDL2
: build options > Search Dir > Compiler - SDL2>Include 폴더
: build options > Search Dir > Linker - SDL2>lib 폴더
-테스트
#include <SDL.h>
int main(int argc, char **argv)
{
SDL_Init(SDL_INIT_EVERYTHING);
return 0;
}
4.2 FFMPEG
'Information > ffmpeg' 카테고리의 다른 글
ffmpeg player with visual studio 2013 (0) | 2016.05.16 |
---|
설정
트랙백
댓글
글
ubuntu 12.04 에서 eclipse 설치 이후 오류 발생
ubuntu 패키지에 있는 eclipse 를 설치한 뒤에 실행하면 다음과 같은 오류가 발생합니다.
An error has occurred. See the log file
/home/xxxxxx/.eclipse/org.eclipse.platform_3.7.0_155965261/configuration/xxxxxxxxx.log
해당 로그 파일을 열어보면 다음과 같습니다.
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
.....
해결 방법은 SWT 라이브러리 심볼릭 링크를 만들어주면 됩니다.
32비트 ubuntu 에서는 다음과 같습니다.
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
64비트 ubuntu 에서는 다음과 같습니다.
ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
참고:
http://stackoverflow.com/questions/10165693/eclipse-cannot-load-swt-libraries
'Information > 리눅스' 카테고리의 다른 글
2.0. centOS 7에 NGINX 설치 및 기본 설정 (0) | 2016.01.27 |
---|---|
1.0. 우분투에 NGINX 설치 (0) | 2016.01.22 |
0.0. 리눅스 설치 및 설정 (0) | 2016.01.22 |
설정
트랙백
댓글
글
ffmpeg player with visual studio 2013
원글 : http://aslike.egloos.com/
1. 개발환경 준비
-vs2013
-ffmpeg library : https://ffmpeg.zeranoe.com/builds/
-2.2.1 기준
-C:\ffmpeg 폴더 내.
-ffmpeg shared ver.
-bin 폴더
-ffmpeg dev ver.
-include 폴더
-lib 폴더
-<inttypes.h> 헤더 파일 필요 : https://code.google.com/archive/p/msinttypes/
-include/libavutil/ 폴더 내 복사
-include/libavutil/common.h 32줄 수정 #include "inttypes.h"
-새 프로젝트생성 : 빈프로젝트
-문자집합 : 설정안함
-프로젝트 속성 -> vc++ 디렉토리,
-포함/라이브러리 C:\ffmpeg/include, C:\ffmpeg/lib
-C/C++ -> 일반 -> 추가포함디렉터리 C:\ffmpeg/include
-링커 -> 일반 -> 추가라이브러리디렉터리 C:\ffmpeg/lib
-디버깅 -> 환경 PATH=%PATH%;C:\ffmpeg\bin
2. 테스트
///> Include FFMpeg
extern "C" {
#include <libavformat/avformat.h>
}
///> Library Link On Windows System
#pragma comment( lib, "avformat.lib" )
#pragma comment( lib, "avutil.lib" )
int main(void)
{
av_log( NULL, AV_LOG_INFO, "Hello FFmpeg\n" );
return 0;
}
'Information > ffmpeg' 카테고리의 다른 글
ffmpeg with Code::Blocks (0) | 2017.03.28 |
---|
설정
트랙백
댓글
글
HTML&JavaScript/IE에서 로컬 프로그램 실행
<html>
<head>
<title>Test</title>
<script>
function RunFile() {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("프로그램경로(ex-"c:/test.exe")", 1, false);
}
</script>
</head>
<body>
<input type="button" value="Run" onclick="RunFile();"/>
</body>
</html>
</html>
설정
트랙백
댓글
글
2.0. centOS 7에 NGINX 설치 및 기본 설정
1. centOS에 NGINX 설치.
- 버추얼 박스에서 테스트
- centOS7, NGINX-1.8.0
1.1. 파일 다운로드 폴더 생성
mkdir src && cd src
1.2. 사용자 추가
sudo useradd --shell /sbin/nologin www-data
sudo useradd --shell /usr/sbin/nologin www-data
2. nginx 다운로드 및 압축 해제
-안정화 버전 다운로. (1.8.0)
wget http://nginx.org/download/nginx-1.8.0.tar.gz
-압축해제
tar xvfz nginx-1.8.0.tar.gz
2.1. 선행 요소 설치
sudo yum install gcc
sudo yum install pcre pcre-devel
sudo yum install openssl openssl-devel
sudo yum install zlib zlib-devel
2.3. configure
-압축을 푼 폴더에서
sudo ./configure --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --with-http_stub_status_module --with-debug
2.4. sudo make
2.5. sudo make install
2.6. 서비스 등록
vi /etc/init.d/nginx
-아래내용 붙여넣기
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: NGINX is an HTTP(S) server, HTTP(S) reverse\
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() { echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$? echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
-실행권한 설정
sudo chmod +x /etc/iniit.d/nginx
sudo chkconfig nginx on
sudo chkconfig --add nginx
sudo chkconfig --list nginx
- 실행 시 다음과 같이 출력되어야 함.
- nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.7. 방화벽 등록
-설치
sudo yum install firewalld
systemctl start firewalld
systemctl enable firewalld
-포트 등록
sudo firewall-cmd --permanent --zone=public --add-prot=80/tcp
-방화벽 재시작
sudo firewall-cmd --reload
2.8. NGINX 시작
service nginx start ( stop restart status )
'Information > 리눅스' 카테고리의 다른 글
ubuntu 12.04 에서 eclipse 설치 이후 오류 발생 (0) | 2016.07.20 |
---|---|
1.0. 우분투에 NGINX 설치 (0) | 2016.01.22 |
0.0. 리눅스 설치 및 설정 (0) | 2016.01.22 |
설정
트랙백
댓글
글
C++/ cap 파일 만들기
dll이나 ocx를 웹에서 배포하기 위해 cab파일로 변환
참고로 여기에서 cab파일을 만들때는 테스트인증서를 가지고 만들지만 실제 배포에 있어서는 정식 인증서를 발급받아 배포
이유는 MS사의 Internet Explorer에서 보안 강화로 인하여 테스트 인증서로는 배포한다 하더라도 Internet Explorer에서는 설치가 안된다.
cab파일을 만들기 위해서 작업 순서는 다음과 같다.
1. DLL이나 OCX파일을 준비 한다.
2. *.inf 파일을 작성한다.
3. 테스트 인증서를 만들고 인증서를 넣은 cab파일을 만든다.
4. 웹에 cab파일을 올린다.
이제 하나하나 짚어가며 설명을 하겠다.
1. DLL이나 OCX파일을 준비 한다.
- 자기가 구현하고자 하는 어플리케이션을 만든다.(어플리케이션 개발까지는 설명하지 않겠다.)
2. *.inf 파일을 작성한다.(아래는 주석을 뺀 내용이다.)
- 좀 긴것같지만 수정해야할 부분은 많지 않다.(붉은색으로 표시한 부분만 수정하면된다.)
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
TestActiveX.ocx=TestActiveX.ocx <--- 대상 OCX, DLL을 적어준다.
mfc42.dll=mfc42.dll
msvcrt.dll=msvcrt.dll
olepro32.dll=olepro32.dll
[TestActiveX.ocx] <--- 대상 OCX, DLL을 적어준다.
file-win32-x86=thiscab
clsid={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
;VC++의 파일 목록줄 XXXXX.old파일의 마지막 clsid를 적어준다.
FileVersion=1,0,0,1
;VC++의 WorkSpace중 ResourceView에 Version폴더의 Version_info내용중 fileversion을 쓴다.
RegisterServer=yes
[msvcrt.dll]
FileVersion=6,0,8168,0 <--컴파일러 버전을 적어준다.
hook=mfc42installer
[mfc42.dll]
FileVersion=6,0,8168,0
hook=mfc42installer
[olepro32.dll]
FileVersion=5,0,4261,0
hook=mfc42installer
[mfc42installer]
file-win32-x86=<LINK TYPE="GENERIC" VALUE="http://activex.microsoft.com/controls/vc/mfc42.cab">http://activex.microsoft.com/controls/vc/mfc42.cab</LINK>
run=%EXTRACT_DIR%\mfc42.exe
이로써 inf파일 작성이 끝났다.
3. 테스트 인증서를 만들고 인증서를 넣은 cab파일을 만든다.
- 테스트 인증서를 만들기 위해서는 InetSDK가 필요하다.(첨부 확인 : inetsdk.zip)
(콘솔 모드에서 실행하여야 한다.)
1) cabarc N TestActiveX.cab TestActiveX.ocx TestActiveX.inf
: TextActiveX.ocx를 TestActiveX.inf 설정을 통하여 TestActiveX.cab를 만든다는 의미이다.
2) 서명하기.
ㄱ) makecert -sv Test.pvk -n "CN=Test ActiveX OCX" Test.cer
- 비밀번호를 묻는 윈도우가 나온다. 비밀번호 입력후 기억해 두자.
ㄴ) cert2spc Test.cer Test.spc
- Test.cer 파일로 부터 Test.spc 파일을 만든다.
ㄷ) signcode -v Test.pvk -spc Test.spc TestActiveX.cab
- 비밀번호를 묻는 윈도우가 나오며 ㄱ)에서 입력한 비밀번호를 넣는다.
ㄹ) setreg -q 1 TRUE
- 올바르게 테스트 인증서가 첨부되었는지 확인한다.(Warling은 무시하여도 된다.)
4. 웹에 cab파일을 올린다.
<html>
<head>
<title>등록했다.</title>
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<object classid="CLSID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" codebase="TestActiveX.cab#version=1,0,0,1" width="300" height="330" id="TestActiveX">
</object>
</body>
</html>
'Information > C++' 카테고리의 다른 글
C++/ 레지스트리 키 확인 (0) | 2016.01.22 |
---|
설정
트랙백
댓글
글
C++/ 레지스트리 키 확인
#include <windows.h>
void main()
{
HKEY key;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Adobe", 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS)
{
// 키를 오픈하는데 성공했습니다.
// 이제 이 키를 이용해 레지스트리를 마음대로 ...
}
else
{
// 키 오픈에 실패했네요....
}
}
'Information > C++' 카테고리의 다른 글
C++/ cap 파일 만들기 (0) | 2016.01.22 |
---|
설정
트랙백
댓글
글
1.0. 우분투에 NGINX 설치
1. 다운로드
- wget http://nginx.org/download/nginx-1.4.0.tar.gz
- tar -xvf nginx-1.4.0.tar.gz
2. 선행 요소 설치
2.1. PCRE ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
-버전별 상이하니 확인부터
- wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
- tar xvf pcre-8.32.tar.gz
2.2. openssl http://www.openssl.org/source/
- wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
- tar -xzvf openssl-1.0.1e.tar.gz;
2.3. zlib
- wget http://zlib.net/zlib128.zip
- unzip zlib128.zip
2.4. echo module
- wget https://github.com/agentzh/echo-nginx-module/archive/v0.45.zip;
- unzip v0.45.zip;
3. configure
- sudo ./configure --with-zlib=../zlib-1.2.8 --with-pcre=../pcre-8.38 --with-openssl=../openssl-1.0.1e --with-http_ssl_module --with-debug --add-module=../echo-nginx-module-0.45 --prefix=/usr/local/nginx --user=www-data --group=www-data
- --with-(zlib | pcre | openssl) : NGINX가 의존하고 있는 라이브러리들의 소스 경로
- --with-(http_ssl_module | debug) : NGINX를 설치할 때 ssl, debug 모듈을 활성화한다. 이 모듈들은 NGINX가 제공하는 내부 모듈이지만 기본적으로는 설치가 되지 않는 옵션사항이다.
- --add-module : 외부 모듈인 echo 모듈의 소스가 위치하는 디렉토리
- --prefix : NGINX가 설치될 기본 디렉토리를 의미한다. 이 디렉토리 하위에 NGINX의 실행, 로깅, 설정 파일들이 설치된다. 각각의 항목을 바꿀 수도 있다. 메뉴얼을 참고하자.
- --user, --gourp : www-data 사용자의 권한으로 NGXIN를 실행시킨다. www-data 사용자가 없다면 만들어야 한다. 사용자의 리스트는 아래의 명령을 통해서 알 수 있다. www-data가 아니라 자기 자신의 계정을 사용해도 된다.
4. make
- sudo make
5. install
- sudo make install
6. 설치 확인
- /usr/local/nginx
7. 구동
- sudo /usr/local/nginx/sbin/nginx
- 웹브라우저 localhost 확인
8. init
- sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx;
- sudo chmod +x /etc/init.d/nginx;
- 자동실행
- sudo update-rc.d -f nginx defaults
- service nginx status, stop, start, restart 등의 명령어로 상태 확인
'Information > 리눅스' 카테고리의 다른 글
ubuntu 12.04 에서 eclipse 설치 이후 오류 발생 (0) | 2016.07.20 |
---|---|
2.0. centOS 7에 NGINX 설치 및 기본 설정 (0) | 2016.01.27 |
0.0. 리눅스 설치 및 설정 (0) | 2016.01.22 |