생각 보다 배울게 많은 소스이다 mat3 t2w = BasisFrisvad(s.n); mat3 w2t = transpose(t2w); 저기서 FrisVad는 아래서 나왔다 "Building an Orthonormal Basis from a 3D Unit Vector Without Normalization" Finding an orthonormal basis from a unit 3D vector. abstract 내용에 따르면 fewer arithmetic operations http://orbit.dtu.dk/fedora/objects/orbit:113874/datastreams/file_10189336/content 소스 gist는 아래에 https://gist.github.com/XProger/b3..
https://github.com/playdeadgames/temporal https://github.com/TheRealMJP/MSAAFilter http://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf https://github.com/playdeadgames/temporal/blob/master/Assets/Scripts/Extensions.cs https://github.com/t-pot/TAA/blob/master/taa.hlsl http://t-pot.com/program/152_TAA/ https://github.com/gokselgoktas/temporal-anti-aliasi..
https://tomgroveblog.wordpress.com/ https://github.com/ray-cast/ray-mmd/blob/master/Lighting/SphereLight/sphere_lighting.fxsub https://github.com/ray-cast/ray-mmd/blob/8d961c986f0ba473e66bfb077a0f4e18490c79b1/Shader/LTCHelper.fxsub https://github.com/ray-cast/ray-mmd/blob/8d961c986f0ba473e66bfb077a0f4e18490c79b1/Shader/LTC.fxsub https://github.com/ray-cast/ray-mmd/commit/4d958f640ec3b8315e0b9965..
열심히 Web version을 포팅했다 그런데 정상적인 형태가 나오지 않는다 Specular 쪽 intensity가 너무 강하게 나온다 해당 문제로 인해 코드를 일일히 비교해봤지만 원인을 알기 힘들었다 LTC mat/mag texture도 바꿔보고 답은 Tone mapping 이었다 GPU Gen의 Mat/Mag을 사용하였는디 이 경우는 M00 이 1 인 형태다 색 분포가 cpp 예제인 ltc_demo / ltc_mat.dds와 아예 다른데 이유가 먼지 아래가 ltc_mat.dds의 sample 이다 뒤집는다 하면 결국 오른쪽 녹색의 차이가 문제임 흠, Web 버전에 힌트가 있음 둘다 fit 코드로 부터 나온거고 그걸 optimize하면서 다른 걸로 바꾼 것 최신 버전으로 바꿔보자
None linear fuction에 대해 간단히 선택할 수 있다고 한다 도함수가 있다면 BFGS algorithm을 써라고 한다 소스에서는 아래 방법을 사용 // initialise simplex mov(s[0], start, DIM); for (int i = 1; i < NB_POINTS; i++) { mov(s[i], start, DIM); s[i][i - 1] += delta; } 도대체 먼가 했는데, https://stackoverflow.com/questions/17928010/choosing-the-initial-simplex-in-the-nelder-mead-optimization-algorithm 비슷하게 matlab에서도 쓰인다고 한다 x0=xin and the remaining n v..
기본 http://www.lighthouse3d.com/tutorials/glsl-tutorial/uniform-blocks/ http://github.prideout.net/modern-opengl-prezo/ BlockArray Framework::UniformBlockArray https://github.com/paroj/gltut/blob/master/Tut%2013%20Impostors/BasicImpostor.cpp Ray OGLGraphicsData
가장 간단하게는 shader bind 후 호출하는 방식 복잡하게는 한도 끝도 없지만, 렌더링시에 메모리에 써버리는 방식의 경우 MiniEngine 에서 봤다 MiniEngine DirectX 12 기반은 저걸 써야 하고, DirectX 11은 11.1에서 추가된 방식을 쓰면되던데 Vulkan도 비슷할듯하다 반면, Shader query를 기반으로 자료형 다 조사해서 uniform이나 cbuffer 구조를 만들어두고 변경시 update하는 방식이 있다. Direct 11 기반은 ForwardPlus, 히에로그라프가 있는데 shader query는 컴퓨터에서 밖에 사용 못한다. OpenGL은 Ray 가 비슷한 방식을 사용한다. Ray 아래와 같이 할당하면, effect->getParameter("qualit..
Renderbuffer 의 경우 아무도 사용하지 않는 듯하다 MiniEngine 전역변수를 통해 관리하고 CreateFromSwapChain 라는 별도의 함수를 통해 ColorBuffer를 생성한다 Buffer는 RenderTarget이 될 수 있는 자원을 의미, Texture는 read only 이다 하지만 OpenGL은 저렇게 나눠지게 힘들고 공용으로 처럼 보인다. 해당 buffer를 생성해서 별도의 FrameBuffer 개체를 생성하여 attach 하여 사용한다 Ray https://github.com/ray-cast/ray RenderSystem::instance()->setWindowResolution 을 통해 PipelineManager에 Base용 'pipeline'에 해당 값..
RBRT의 경우 적분 형태이고; PBR 관련 문서 중에 FrostBite였나 거긴 shader code가 첨부되어있다 하지만 바로 이해가 안되므로 설명을 찾아다녔다 GameDev 2009 https://www.gamedev.net/forums/topic/552315-glsl-area-light-implementation/ 여러곳에서 사용되었다. 문제점은 존재하는 듯 댓글 중에 "FWIW, ever read this? It's mathematically correct and should be entirely feasible for real-time use. You can even do spherical and n-sided polygonal lights :)" 저기에 this는 아래 논문이다. 길고..
귀찮은 작업이다 검색하면 #include 파싱해서 소스 넣어라 하는 글이 나온다 https://www.opengl.org/discussion_boards/showthread.php/169209-include-in-glsl extension 통해 하는 방법 아래에 설명이 나온다 https://computergraphics.stackexchange.com/questions/100/sharing-code-between-multiple-glsl-shaders https://www.g-truc.net/post-0267.html 실제 하는 법은 https://github.com/nvpro-samples/shared_sources/blob/master/nv_helpers_gl/GLSLProgram.cpp glew를 ..
- Total
- Today
- Yesterday