본문 바로가기

전체 글92

layout에 생성한 오브젝트 접근 방법 아래 import가 안되는 경우 layout에 생성한 오브젝트를 코드에서 id를 통하여 접근하지 못한다.import kotlinx.android.synthetic.main.activity_main.* build.gradle 에서 kotlin-android-extensions 플러그인을 추가하고 sync now를 클릭plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-android-extensions")}android {...} 하지만최신 안드로이드 버전에는 플러그인을 사용할 수 없다고 나온다....The 'kotlin-android-extensions' Gradle plugin is no.. 2024. 10. 1.
FireWorks 불꽃놀이 파티클폭발하는 파티클 단계를 만들어 본다.먼저 가운데 밝은점 만들어 보자.uv 값의 범위는 x : -.5 ~ .5, y : -.5 ~ .5 로 설정되어 있다.uv 값의 크기를 구하면 uv와 원점과의 거리가 나오며, 그 거리를 역수를 취해서 컬러값에 넣어주면 다음과 같이 나온다.vec2 uv = (fragCoord - .5 * iResolution.xy) / iResolution.y;col = length(uv) * vec3(1); length(uv) 값을 d 값으로 설정하고, 소수를 d 값으로 나눈 값을 컬러값으로 사용하면d 값 작으면 컬러값이 커지게 되고, d 값이 커지면 컬러값이 작아져 다음과 같이 나온다.col = .1 / length(uv) * vec3(1); 이제 해쉬함수를 생성한다.해.. 2024. 9. 29.
Star 별자리 애니메이션 를 만들어본다.별자리 렌더링을 하기 위해서 다음 과정을 진행한다.  1> 화면의 구간을 여러개로 나누고 나눈 구간마다 공이 돌아다니는 씬을 만들어 본다. 화면의 중심을 원점으로 옮기고 uv 값에 특정 수를 곱해주고 fract를 시켜주면특정 수 만큼 패턴이 반복이된다.예를 들어 5를 곱하게 되면 uv 값은 0~5의 범위를 가지게 된다.fract를 시켜주면 0.0 ~ 1.0의 구간이 5개가 생기므로 반복된 색상의 패턴이 나오게 된다..5를 빼주어서 반복된 패턴의 중심도 좌측하단에서 원점으로 바꾸어 준다. vec2 uv = (fragCoord - 0.5*iResolution.xy)/iResolution.y;vec2 repeat = vec2(10);vec2 st = fract(uv * repe.. 2024. 9. 10.
12. RayMarching - rain and lights struct ray { vec3 o; vec3 d;};// 직선과 점이 수직으로 만났을때 지점vec3 clossestPoint(ray r, vec3 p) { return r.o + max(0., dot(p - r.o, r.d)) * r.d;}// 직선과 점과 최단 거리float DistRay(ray r, vec3 p) { return length(p - clossestPoint(r, p));}// 카메라 좌표계 구하기.ray GetRay(vec2 uv, vec3 camPos, vec3 lookat, float zoom) { ray a; a.o = camPos; vec3 f = normalize(lookat - camPos); vec3 r = cross(vec3(0,1,0), f); vec.. 2024. 8. 18.