Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Tronix
Зарегистрирован: 02.11.2011 Сообщения: 72
|
Добавлено: Вс Авг 05, 2012 22:34 Заголовок сообщения: |
|
|
То-есть я не понял, никто чтоле твистер с текстурированием не делал, и поэтому не знает алгоритм? OMG, ну вы ж сценеры, как так получается, это верно шутка какая-то?
Там (на амижной борде) чувак все подробно объясняет: нужна такая текстура, где начиная с лево направо присутствуют картинки четырех граней. Так, если граней 4 и максимальная ширина одной грани 64 пикселя, текстура должна быть размером в ширину 4*64 = 256 пикселей.
Код: | 64 пикселя 1 грань; 64 пикселя 2 грань; 64 пикселя 3 грань; 64 пикселя 4 грань; следующая строка
64 пикселя 1 грань; 64 пикселя 2 грань; 64 пикселя 3 грань; 64 пикселя 4 грань; следующая строка
64 пикселя 1 грань; 64 пикселя 2 грань; 64 пикселя 3 грань; 64 пикселя 4 грань; следующая строка
64 пикселя 1 грань; 64 пикселя 2 грань; 64 пикселя 3 грань; 64 пикселя 4 грань; следующая строка |
и тд, я думаю понятно.
Затем, когда нужно нарисовать пиксель в цикле по иксу, берем его цвет из текстуры по следующей формуле: Код: | du = (maxwidth<<8) / linelength | , где maxwidth = 64 а linelength = 256. Че тут сложного то? |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Пн Авг 06, 2012 04:02 Заголовок сообщения: |
|
|
Tronix писал(а): | То-есть я не понял, никто чтоле твистер с текстурированием не делал, и поэтому не знает алгоритм? OMG, ну вы ж сценеры, как так получается, это верно шутка какая-то? |
я делал, лет 15 назад, текстурированный, + с текстом бегущим по граням, и освещением. На ассемблере.
Что ты, хочешь чтобы я написал код? Мне реально лень и неинтересно, поскольку это слишком просто и написано уже 10000 раз.
Может чтонить по-интереснее разберёшь? Например воксельный красивый твист, аля
http://www.youtube.com/watch?v=L_lD7iqG8nA&feature=player_detailpage#t=105s
или ещё круче:
http://www.youtube.com/watch?v=HTZr0bctcAk&feature=player_detailpage#t=272s |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Пн Авг 06, 2012 05:04 Заголовок сообщения: |
|
|
закончу с текстурой, доберусь до вас) |
|
Вернуться к началу |
|
|
Tronix
Зарегистрирован: 02.11.2011 Сообщения: 72
|
Добавлено: Пн Авг 06, 2012 08:19 Заголовок сообщения: |
|
|
BiTL писал(а): | Что ты, хочешь чтобы я написал код? Мне реально лень и неинтересно, поскольку это слишком просто и написано уже 10000 раз. |
Да не нужен мне код, я сам его могу написать раз плюнуть. Просто аналогично - не интересно так как слишком просто и ничуть не отличается от обычного твистера без текстурирования (ну парой строк всего).
Вот это да, это интересно, но что значит разобрать? Я ваще даж не представляю как эта хрень сделана, особенно вторая. |
|
Вернуться к началу |
|
|
Tronix
Зарегистрирован: 02.11.2011 Сообщения: 72
|
Добавлено: Пн Авг 06, 2012 13:04 Заголовок сообщения: |
|
|
После гугла немножка прояснилось: строится обычный классический воксельный ландшафт, только лучи кастуются на все 360 градусов (а не на 60 или около того, при классическом алгоритме воксельного террайна). Затем координаты переводятся в полярные, маленько корректируются меджик числами (игра с sin и тд) и вууаля.
Получается что-то типа того (только представьте вместо домов и тд воксельный ландшафт):
Если по первой части еще примерно понятно, то с второй ваще нехрена не понятно ))) Ну да и ладно, адин хрен я такое не накодю никогда ибо скиллов не хватает (математику не любил еще со школы). |
|
Вернуться к началу |
|
|
Tronix
Зарегистрирован: 02.11.2011 Сообщения: 72
|
Добавлено: Пт Авг 10, 2012 20:36 Заголовок сообщения: |
|
|
Посаны, а все-таки как замутить воксельный твистер? Дайти плиз код для нуба. Да хер с ним, даже на васике сойдет. |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Пт Авг 10, 2012 20:44 Заголовок сообщения: |
|
|
Tronix писал(а): | Посаны, а все-таки как замутить воксельный твистер? Дайти плиз код для нуба. Да хер с ним, даже на васике сойдет. |
ну есть же сорцы Despair: http://pouet.net/prod.php?which=365 бери и смотри как там чо |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Сб Авг 11, 2012 08:51 Заголовок сообщения: |
|
|
BiTL писал(а): | Tronix писал(а): | Посаны, а все-таки как замутить воксельный твистер? Дайти плиз код для нуба. Да хер с ним, даже на васике сойдет. |
ну есть же сорцы Despair: http://pouet.net/prod.php?which=365 бери и смотри как там чо |
кстати, вроде бы на HTML5 порт делали, но я ссылку не сохранил. |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Сб Авг 11, 2012 18:32 Заголовок сообщения: |
|
|
bi71 писал(а): | BiTL писал(а): | Tronix писал(а): | Посаны, а все-таки как замутить воксельный твистер? Дайти плиз код для нуба. Да хер с ним, даже на васике сойдет. |
ну есть же сорцы Despair: http://pouet.net/prod.php?which=365 бери и смотри как там чо |
кстати, вроде бы на HTML5 порт делали, но я ссылку не сохранил. |
ты наверное это http://pouet.net/prod.php?which=59403 имеешь ввиду?
Таки да, но очень сложно разобрать JS-код, там адский матан и хак из-за оптимизации по размеру.
Код: | <canvas id=c><script>
a=c.getContext("2d");S=String.fromCharCode;e='';
M=[R=Math.random,Q=Math.cos,c.style.cssText='position:fixed;top:0;left:0;width:100%;height:100%;background:#000',e='data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEAwF0AAMBdAAABAAgAZGF0YQAA'];for(t=2560;t--;)M[t]={t:t,u:t%48/7.64,v:t/366.7,x:128-R()*256,y:64-R()*256,z:128-R()*256};for(t=0;t++<8e5;)e+=btoa(S('13107103135701314204'[(t>>10&15)+(t>>13&4)]*t&96,R()*127*(Math.pow(t/144000%1,16)/4+Math.pow(1-t/144000%1,64)),t>>10&7^5||R()*127));Z=new Audio(e);Z.play(setInterval(function b(v,w){if(v)return w.W-v.W;M.sort(b);h=c.height=0|300*innerHeight/innerWidth;C=Q(r=Z.currentTime/2);S=Q(r-8);a.rotate((r&13)/64-.1);B=r/9;A=Math.pow(B%1,64);d=[1-A,0,A][0|B++%3];f=[1-A,0,A][0|B++%3];e=[1-A,0,A][0|B++%3];for(t=2560;t--;){v=M[t];if(v.W>0)a.fillRect(150-v.W*v.U,v.W*(v.y+Math.max(16*Q(r),150-r*42))+h/2,v.W*7,v.W*7,a.fillStyle='hsl('+[r*17-v.y+R()*48,(16+R()*48)+'%',v.W*7+32-32*Q(v.u*2-8)*Q(v.v*3-8)]+'%)');if(v.t<2304)Y=96-30*v.v,D=32+8*Q(v.u*2)*Q(v.v*3),v.x=(96-30*v.u)*d+D*(Q(v.u)*e+Q(v.u)*Q(v.v/2-8)*f),v.z=Y*d+D*(Q(v.u-8)*e+Q(v.u-8)*Q(v.v/2-8)*f),v.y=D*d+Y*e+D*Q(v.v/2)*f;v.W=128/(v.z*C-v.x*S+96);v.U=v.x*C+v.z*S}a.fillText(['P01 4MAT','MATRAKA'][B&1].substr(a.drawImage(c,0,r*h%h,32,h/8*(3+A+Q(B+A)),0,r*h%h,300,h/8*(3+A+Q(B+A))),r*8-48)+'|',32,h/2)},Z.loop=9))
</script> |
Портировать код можно, но понять как он работает сложновато |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Вс Авг 12, 2012 05:29 Заголовок сообщения: |
|
|
BiTL писал(а): | bi71 писал(а): | BiTL писал(а): | Tronix писал(а): | Посаны, а все-таки как замутить воксельный твистер? Дайти плиз код для нуба. Да хер с ним, даже на васике сойдет. |
ну есть же сорцы Despair: http://pouet.net/prod.php?which=365 бери и смотри как там чо |
кстати, вроде бы на HTML5 порт делали, но я ссылку не сохранил. |
ты наверное это http://pouet.net/prod.php?which=59403 имеешь ввиду?
Таки да, но очень сложно разобрать JS-код, там адский матан и хак из-за оптимизации по размеру. |
нет, это:
http://www.webgl.com/2012/05/webgl-demo-despair/
код JS везде аццкий. |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Авг 12, 2012 18:43 Заголовок сообщения: |
|
|
Ну прикольно, интересно как они эту штуку:
в WebGL закодили. Надо будет глянуть. |
|
Вернуться к началу |
|
|
Tronix
Зарегистрирован: 02.11.2011 Сообщения: 72
|
Добавлено: Ср Авг 15, 2012 23:13 Заголовок сообщения: |
|
|
BiTL писал(а): |
Ну прикольно, интересно как они эту штуку:
в WebGL закодили. Надо будет глянуть. |
Есть некое подозрение, что эта штука не воксельная. А обычная 3д фигура, тока в сканлайн засунули синосуидальное искажение относительно икса. Примерно такое есть в Disaev Demo Guide от лохматого года на паскакале. |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Чт Авг 16, 2012 00:03 Заголовок сообщения: |
|
|
Tronix писал(а): | BiTL писал(а): |
Ну прикольно, интересно как они эту штуку:
в WebGL закодили. Надо будет глянуть. |
Есть некое подозрение, что эта штука не воксельная. А обычная 3д фигура, тока в сканлайн засунули синосуидальное искажение относительно икса. Примерно такое есть в Disaev Demo Guide от лохматого года на паскакале. |
В порте WebGL, ты имеешь ввиду? |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Чт Авг 16, 2012 14:30 Заголовок сообщения: |
|
|
BiTL писал(а): | в WebGL закодили. Надо будет глянуть. |
надо бы, и на тот исходник, что нарыл(dna_src), глянуть. |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Чт Авг 16, 2012 20:34 Заголовок сообщения: |
|
|
к слову о твистерах... вот демка с Evoke 2012 жжот http://pouet.net/prod.php?which=59699
Особено саудтрек.
и платформа экзотическая. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|