User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 24

Тема: Решение формулы Ordered Dither

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,105
    Спасибо Благодарностей отдано 
    1,354
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    krt17, в каждой следующей матрице в 4 раза больше чисел. Напрашивается не 2 в степени, а 4^(n-1).

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    811
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    krt17, в каждой следующей матрице в 4 раза больше чисел. Напрашивается не 2 в степени, а 4^(n-1).
    число столбцов/строк 2^n (n=2...), число элементов будет (2^n)*(2^n)=2^(2n)=4^n зачем делить еще на 4 я не очень понял.
    Для случая n=3 число строк/столбцов будет 2^3=8 элементов 4^3=64
    n=4 - 16, 256
    видимо у тебя n немного другое обозначает.

    Внезапно на подобной хрене возможен многомерный детеринг

    add
    так да стоп я что то упустил. Сейчас шлифанем.

    - - - Добавлено - - -

    Все верно Reobne, был прав, я затупил
    правильная формула:

    e(n,x,y)=e(n-1,x div 2,y div 2)+e(1,x mod 2,y mod 2)*4^(n-1)

    e(n,x,y)=e(n-1,x div r,y div r)+e(1,x mod r,y mod r)*r^2(n-1)

    - - - Добавлено - - -

    Ну и до кучи Lua демо
    Код:
    function elem(n,y,x)
    --print (n,y,x)
    if n==1 then return pattern[y+1][x+1]
      else return elem(n-1,math.floor(y/2),math.floor(x/2))+elem(1,y%2,x%2)*4^(n-1)
    end
    
    end
    pattern={{3,1},{0,2}}
    cur=3
    for y=0,2^cur-1 do
      io.write (y.."\t")
    for x=0,2^cur-1 do
      io.write (elem(cur,y,x).."\t")
      end
      io.write ("\n")
      end
    Последний раз редактировалось krt17; 21.03.2016 в 13:19.

  4. #3

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,571
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Ну и до кучи Lua демо
    Попробовал перевести на PureBasic. Получается что-то не то...

    PHP код:
    Global Dim Pattern.l(16,16)

    Procedure elem(n,y,x)
      
     ; Print( 
    Str(n) )
     ; Print( 
    Str(x) )
     ; 
    PrintNStr(y) )
      
      If 
    n=1
        
        ProcedureReturn Pattern
    (y+1,x+1)
        
      Else
        
        
    ProcedureReturn elem(n-1Round(y/2,#PB_Round_Down), Round(x/2,#PB_Round_Down)) + elem(1, y%2, x%2) * Pow(4,(n-1))
        
      
    EndIf
      
    EndProcedure

    OpenConsole
    ("")


     ; 
    Pattern={{3,1},{0,2}}
    Pattern(0,0) = 3
    Pattern
    (0,1) = 1
    Pattern
    (1,0) = 0
    Pattern
    (1,1) = 2

    cur 
    3

    For y=0 To Pow(2,cur-1)
       
      Print( 
    Str(y) ); io.write (y.."\t")
      
      For 
    x=0 To Pow(2,cur-1)
         
        Print( 
    Str(elem(cur,y,x)) ); io.write (elem(cur,y,x).."\t")
        
        
    elem(cur,y,x)
      
    Next x
      
      PrintN
    (""); io.write ("\n")
    Next y

    CallDebugger 
    Последний раз редактировалось newart; 22.03.2016 в 00:52.

  5. #4

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    811
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Получается что-то не то...
    Для деления воспользуйся >> , видимо что то там с округлением суровое . Я не в курсе что там с басиком, на lua 100% рабочий вариант, проверял с разными cur.

    - - - Добавлено - - -

    О а на фига еще один elem(cur,y,x) ? Это не нужно. И что собственно получается то?

    - - - Добавлено - - -

    Мое при cur=4
    Код:
    D:\Dropbox\lua>lua53.exe test1.lua
    0       255     127     223     95      247     119     215     87      253     125     221     93      245     117     213     85
    1       63      191     31      159     55      183     23      151     61      189     29      157     53      181     21      149
    2       207     79      239     111     199     71      231     103     205     77      237     109     197     69      229     101
    3       15      143     47      175     7       135     39      167     13      141     45      173     5       133     37      165
    4       243     115     211     83      251     123     219     91      241     113     209     81      249     121     217     89
    5       51      179     19      147     59      187     27      155     49      177     17      145     57      185     25      153
    6       195     67      227     99      203     75      235     107     193     65      225     97      201     73      233     105
    7       3       131     35      163     11      139     43      171     1       129     33      161     9       137     41      169
    8       252     124     220     92      244     116     212     84      254     126     222     94      246     118     214     86
    9       60      188     28      156     52      180     20      148     62      190     30      158     54      182     22      150
    10      204     76      236     108     196     68      228     100     206     78      238     110     198     70      230     102
    11      12      140     44      172     4       132     36      164     14      142     46      174     6       134     38      166
    12      240     112     208     80      248     120     216     88      242     114     210     82      250     122     218     90
    13      48      176     16      144     56      184     24      152     50      178     18      146     58      186     26      154
    14      192     64      224     96      200     72      232     104     194     66      226     98      202     74      234     106
    15      0       128     32      160     8       136     40      168     2       130     34      162     10      138     42      170

  6. #5

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,105
    Спасибо Благодарностей отдано 
    1,354
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это интересно!
    Для начала надо изобрести 3Д паттерн 2х2х2.

    - - - Добавлено - - -

    Возможно (((0,4),(6,2)),((3,7),(5,1)))

    - - - Добавлено - - -

    А в формулу добавим координату:
    e(n,x,y,z)=e(n-1,x div 2,y div 2,z div 2)+e(1,x mod 2,y mod 2,z mod 2)*8^(n-1)

  7. #6

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    811
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Раз пошел такой замес обобщу
    d - измерения
    v - вектор в d пространстве ( грубо массив координат v(d))
    остальное как прежде
    e(n,v)=e(n-1,v div r)+e(1,v mod r)*r^d(n-1)
    можно я думаю обобщить для случая не равностороннего паттерна если это нужно

  8. #7

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,105
    Спасибо Благодарностей отдано 
    1,354
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё-бы придумать алгоритм генерации наиболее небанальных паттернов, для полной автоматизации.

  9. #8

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А чем не устраивает Floyd-Steinberg dithering? Красивей же.

  10. #9

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не совсем по теме
    просто оставлю это сдеся
    тк прикольно и стабильно выглядит

    https://forums.tigsource.com/index.p...742#msg1363742

    - - - Добавлено - - -

    Как бы такого добиться
    одной постобработкой...

    ...для 3дэ
    можно попробовать чб текстуры с жестким мипмапингом
    Последний раз редактировалось NEO SPECTRUMAN; 28.05.2019 в 17:22.

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Audio-CD + привод CD-ROM как у-во ввода? Простое решение.
    от ss2user в разделе Внешние накопители
    Ответов: 7
    Последнее: 22.10.2015, 16:51
  2. FDD emulator (готовое решение)
    от selevo в разделе Внешние накопители
    Ответов: 7
    Последнее: 22.07.2015, 07:53
  3. Ответов: 20
    Последнее: 28.04.2012, 10:44
  4. Решение проблемы +/- 12 В для 580 серии.
    от falanger в разделе Разное
    Ответов: 30
    Последнее: 25.12.2010, 20:47
  5. Решение задачи по переводу демы SNG
    от AAA в разделе Разный софт
    Ответов: 2
    Последнее: 04.02.2007, 11:40

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •