천쪼가리 2개 휘날리는데 3 ms 걸린다. Ground 와는 무조건 collapse 된다고 판정되어, island 분리도 불가능하고 현재 버전은 그 때문인지 multithread 지원도 안된다. Ground 를 제거하고 MT 버전 대충 때려박아봤는데도 안된다. 좀더 파보니까, batch island 가 128 이라서 merge 되 버린다. for 문제 static 만 추가하도록 되어있던데 아예 따로 만들 계획이었나? island manager를? 골치아픈거 생각하느니 나쁘진 않은듯. collision 은 딴데서 처리하였지? 아마; 몇개 수정하다 보면 solveSoftConstraint 만 하면 될거 같은데, 거기서는 디펜던시가 있는지 버그 난다. 망할, 우선 개발 버전 받아서 삽질 좀 해야할 것 같다. ..
OpenCL 버전은 개발 및 유지보수할 사람이 없단다. 그래서 Roadmap 이고 머고 없다고. 600 개 정도의 테스트를 하면 병렬화 코드 9 ms => 6.5 ms 로 줄어드는데, task size 를 조정하고 thread 수를 조작해도 +-1ms 정도 밖에 차이가 안난다. 아래 싸이트의 shader와 shape mesh를 사용하였다. http://zerogram.info/?p=2188 개체를 1만개 까지 늘리면 확연한 차이가 나는데 그 경우는 이미 16 ms 를 넘어버린다
으아아아 auto shadow = T * m_SplitProjections[i] * m_SunShadow.GetViewMatrix(); vsConstants.shadow[i] = m_SplitProjections[i]; shadow 를 넣어야하는데 실수했다. 근대 몇시간 걸린거지 좀 바꿀게 많고 어떻게든 돌아가면 그때 고치느라고 미루다보니 실수했다. 바로 디버깅 때려서 값 확인해야했는데 단계를 나눠 밟더라도 천천히 계속 성공하면서 가야 기분이 나는데 실천하긴 쉽지 않다
역시 Frustum visualize 해야 먼가 보인다. Cascaded 를 붙이고 있다. http://dev.theomader.com/cascaded-shadow-mapping-1/ 위의 글을 따라하고 있었는데 잘못한듯 우선 Orthographic Light Projection matrix 를 나눠본건데 저런 식으론 depth 의 정밀도는 높아진다. 하지만, 별로 도움이 안된다. Z 높이가 100 일때, Z 높이가 20 일때, 대신 x, y 를 줄여서 꽉 쪼이게 만들면?
Gaussian weighted PCF 방식이다 좀더 최적화 된 형태로 아래 걸 사용해보았다. http://the-witness.net/news/2013/09/shadow-mapping-summary-part-1/ 위의 링크에서 볼 수 있으며, 아직 정해진 이름은 없다. q = { {0, 0, 0, 0, 0, 0, 0}, {0, a*a, a*b, a*c, a*b, a*a, 0}, {0, b*a, b*b, b*c, b*b, b*a, 0}, {0, c*a, c*b, c*c, c*b, c*a, 0}, {0, b*a, b*b, b*c, b*b, b*a, 0}, {0, a*a, a*b, a*c, a*b, a*a, 0}, {0, 0, 0, 0, 0, 0, 0}} k[x_, y_] := s*t*q[[x, y]] + ..
After filter 로 PCF, POISSON (Standard, Rotated, Stratified) [GCD08: https://users.cg.tuwien.ac.at/scherzer/files/papers/LispSM_survey.pdf] Fixed-Size Penumbra PCF (Percentage Closer Filtering) VSM (Variance Shadow Maps) CSM (Convolution Shadow Maps) ESM (Exponential Shadow Maps) Variable-Size Penumbra PCSS (Percentage Closer Soft Shadows) PCSS + VSM/CSM Backprojection PCF - POISSON DISK STRATIFI..
완전 Random은 이쁘지 않다. 대안은? 적당한 어떤 것. 순수한 무작위성은 포인트가 공간에서 혼란스럽고 빈 공간을 남기는 경향이있어 심미적으로 기쁜 결과를 낳지는 않습니다. 다른 극단에서는 완벽하게 균질 한 체계를 사용하여 그리드를 작성하면 앨리어싱 형태의 아티팩트가 생성됩니다. 따라서 우리는 여전히 무언가를 무작위로 필요로하지만 여전히 조금은 더 평평하게해야합니다. [http://www.joesfer.com/?p=108] 중간 지대에는 "저주파 성분이 적고 에너지가 집중되지 않는"특정 주파수 분포에 부여 된 Blue Noise 라는 소음 이 있습니다. 즉, 저주파수에서 구조적 앨리어싱을 제공하지 않으며 최소한의 혼란으로도 간격을 둡니다. 일반적으로 청색 잡음 특성은 광범위한 응용 분야에 대한 최상의..
Option test extern NumVar ContrastThreshold; // Default = 0.166 extern NumVar ContrastThresholdMin; // Default = 0.0833 extern NumVar SubpixelRemoval; // Default = 0.75 FXAA_GREEN_AS_LUMA There's no mentional changes on simple screen LogLumiance // Another optimization is in the generation of perceived brightness (luma) of pixels. // The original implementation used sRGB as a good approximat..
while (S_OK != Graphics::g_Context->GetData( pQueryDisjoint, pDisjoint, sizeof(D3D11_QUERY_DATA_TIMESTAMP_DISJOINT), D3D11_ASYNC_GETDATA_DONOTFLUSH)) {} if (!pDisjoint->Disjoint) { for (uint32_t i = 0; i GetData( pQueryHeap[i], &pBuffer[i], sizeof( UINT64 ), 0 )) pBuffer[i] = 0; } } Without timestamp With timestamp Hot to reduce it? Solution:..
- Total
- Today
- Yesterday