Forwarded from Kamali
اگر بخواهیم ابر یا کهکشان رو شبیه سازی کنیم حتی با پارتیکل تو انجین های بازی سازی سنگین میشه
به خاطر همین از این روش استفاده می کنند تا هم خروجی واقعی تری داشته باشند و هم خروجی بهینه تری
البته این روش خیلی سنگینه اما نسبت به پارتیکل به نظرم ارزشش رو داره
به خاطر همین از این روش استفاده می کنند تا هم خروجی واقعی تری داشته باشند و هم خروجی بهینه تری
البته این روش خیلی سنگینه اما نسبت به پارتیکل به نظرم ارزشش رو داره
Forwarded from Kamali
تو این روش ما با استفاده از توابع ریاضی اجسام هندسی رو می سازیم
بعد شما می تونیم خارج از پایپ لاین رندر انجین بازی سازی بیایم و اون آبجکت رو رندر کنیم
بعد شما می تونیم خارج از پایپ لاین رندر انجین بازی سازی بیایم و اون آبجکت رو رندر کنیم
Forwarded from Kamali
Forwarded from Kamali
اولین چیزی که مهمه شما باید بدونی ورودی ها چی هستند
در شکل بالا p همون position هست و s همون scale هست
در شکل بالا p همون position هست و s همون scale هست
Forwarded from Kamali
1.همیشه باید قبل از رسم یک شکل تعریفشو بدونیم و همچنین
تعریف دایره : دایره مکان هندسی نقاطی از صفحه است که فاصلهشان از نقطهٔ ثابتی واقع در آن صفحه، مقدار ثابتی باشد. نقطهٔ ثابت مرکز دایره و مقدار ثابت اندازهٔ شعاع دایره نامیده میشود.
2.همیشه بهتره دوبعدیشو در نظر بگیریم چون سه بعد شاید برامون یکم پیچیده باشه
به عنوان مثال به جای اینکه sphere رو تصور کنیم circle رو تصور می کنیم چون رسم و تصورش راحت تره
تعریف دایره : دایره مکان هندسی نقاطی از صفحه است که فاصلهشان از نقطهٔ ثابتی واقع در آن صفحه، مقدار ثابتی باشد. نقطهٔ ثابت مرکز دایره و مقدار ثابت اندازهٔ شعاع دایره نامیده میشود.
2.همیشه بهتره دوبعدیشو در نظر بگیریم چون سه بعد شاید برامون یکم پیچیده باشه
به عنوان مثال به جای اینکه sphere رو تصور کنیم circle رو تصور می کنیم چون رسم و تصورش راحت تره
Forwarded from Kamali
شکل دومی محاسباتش خیلی شبیه به شکل اولی هست اما دو تفاوت داره یکی از تابع max و یکی از تابع abs یا absolution (قدرمطلق) استفاده شده که در ادامه بهش می پردازم
Forwarded from Kamali
تو ریاضیات ما یک چیزی داریم تحت عنوان Positive and negative parts
https://en.wikipedia.org/wiki/Positive_and_negative_parts
https://en.wikipedia.org/wiki/Positive_and_negative_parts
Forwarded from Kamali
حالا این به چه درد می خوره!
به درد discard کردن می خوره
به درد discard کردن می خوره
Forwarded from Kamali
من تو ShaderToy قدم به قدم پیش رفتم اصلاً بدون این تابع هم میشه با if-else statement
Forwarded from Kamali
float udBox( vec3 p, vec3 b )
{
در محور x شکل رو ادامه میدیم
if(p.x<0.){
p.x = 0.;
}
return length(p)-b;
}
{
در محور x شکل رو ادامه میدیم
if(p.x<0.){
p.x = 0.;
}
return length(p)-b;
}
Forwarded from Kamali
float udBox( vec3 p, vec3 b )
{
در محور x شکل رو ادامه میدیم
if(p.x<0.){
p.x = 0.;
}
در محور y شکل رو ادامه میدیم
if(p.y<0.){
p.y = 0.;
}
return length(p)-b;
}
{
در محور x شکل رو ادامه میدیم
if(p.x<0.){
p.x = 0.;
}
در محور y شکل رو ادامه میدیم
if(p.y<0.){
p.y = 0.;
}
return length(p)-b;
}
Forwarded from Kamali
3.webm
956.4 KB
float udBox( vec3 p, vec3 b )
{
if(p.x<0.){
p.x = 0.;
}
if(p.y<0.){
p.y = 0.;
}
if(p.z<0.){
p.z = 0.;
}
return length(p)-b;
}
{
if(p.x<0.){
p.x = 0.;
}
if(p.y<0.){
p.y = 0.;
}
if(p.z<0.){
p.z = 0.;
}
return length(p)-b;
}
Forwarded from Kamali
ولی خب ببین خیلی طولانی شده!
البته برای خلاصه نوشتن بین شرط ها && هم میشه کرد ولی بهتره از معادل تابع ریاضیش استفاده کنیم
float udBox( vec3 p, vec3 b )
{
return length(max(p-b,0.));
}
البته برای خلاصه نوشتن بین شرط ها && هم میشه کرد ولی بهتره از معادل تابع ریاضیش استفاده کنیم
float udBox( vec3 p, vec3 b )
{
return length(max(p-b,0.));
}
Forwarded from Kamali
اما شکل هنوز کامل نشده!
یک مشکلی داره و اونم اینه که انگار نصف مکعبه و کُلش نیست!
بهتره از دیدگاه دوبعدی بهش نگاه کنیم تا مشکلش رو بفهمیم
یک مشکلی داره و اونم اینه که انگار نصف مکعبه و کُلش نیست!
بهتره از دیدگاه دوبعدی بهش نگاه کنیم تا مشکلش رو بفهمیم
Forwarded from Kamali
Square.PNG
299.8 KB
شکل اینم براتون رسم کردم
همون طور که می بینید از abs برای تقارن uv استفاده شده استفاده شده
همون طور که می بینید از abs برای تقارن uv استفاده شده استفاده شده