一種軌跡生成方法和裝置的制造方法
【技術領域】
[0001]本申請涉及圖像處理技術領域,特別是涉及一種軌跡生成方法和一種軌跡生成裝置。
【背景技術】
[0002]在圖像/視頻后期處理軟件中,自由繪制可以使用戶更方便快捷的實現(xiàn)自定義需求,繪制過程是繪制每一個點的過程。將鼠標落下到彈起之間畫的單獨的一筆叫做筆觸,繪制過程又會繪制很多個筆觸,在畫一個點時都需要把所有筆觸的所有組成點都渲染一遍。所以繪制過程一遍遍渲染,計算量非常大,由于硬件及軟件效率的限制,繪制過程耗時很長,實時化程度不夠,用戶體驗比較差。
【發(fā)明內(nèi)容】
[0003]鑒于上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種繪圖特技處理方法和相應的一種繪圖特技處理裝置。
[0004]為了解決上述問題,本申請實施例公開了一種軌跡生成方法,所述方法包括:
[0005]接收當前輸入的繪制點形成的軌跡信息;
[0006]按照預設條件將已輸入的當前繪制點進行渲染;
[0007]將渲染后的當前繪制點寫入預置的容器中;
[0008]當所述容器中存在當前軌跡信息在先的繪制點時,在所述容器中合成所述在先繪制點和當前繪制點。
[0009]優(yōu)選的,所述渲染步驟包括:
[0010]選取軌跡信息中的任一當前繪制點作為目標點;
[0011]對所述目標點進行渲染,生成渲染模板;
[0012]對軌跡信息中目標點之外的點,采用所述渲染模板進行復制。
[0013]優(yōu)選的,所述寫入步驟包括:
[0014]在容器中生成一個與渲染后的繪制點同樣大小的緩存;
[0015]將渲染后的繪制點復制到對應的緩存中。
[0016]優(yōu)選的,所述預設條件包括:預設的時間間隔,檢測到結(jié)束提筆;所述容器包括:第一容器,第二容器;
[0017]所述將渲染后的當前繪制點寫入預置的容器中的步驟包括:
[0018]當按照預設的時間間隔進行渲染時,渲染后的繪制點寫入預置的第一容器。
[0019]當檢測到結(jié)束提筆進行渲染時,若所述第一容器中存在當前軌跡信息在先的繪制點時,則將渲染后的當前繪制點寫入預置的第一容器中;
[0020]當檢測到結(jié)束提筆進行渲染時,若所述第一容器中不存在當前軌跡信息在先的繪制點時,則將渲染后的當前繪制點寫入預置的第二容器中。
[0021]優(yōu)選的,當檢測到結(jié)束提筆時,渲染后的當前繪制點與第一容器中的當前軌跡信息在先繪制點進行合成;
[0022]所述方法還包括:
[0023]將結(jié)束提筆時合成的當前軌跡信息的繪制點從所述第一容器移動至所述第二容器;
[0024]在所述第二容器中合成所述當前的軌跡信息和在先的軌跡信息。
[0025]同時,本申請還公開了一種軌跡生成裝置,所述裝置包括:
[0026]接收模塊,用于接收當前輸入的繪制點形成的軌跡信息;
[0027]渲染模塊,用于按照預設條件將已輸入的當前繪制點進行渲染;
[0028]寫入模塊,用于將渲染后的當前繪制點寫入預置的容器中;
[0029]第一合成模塊,用于當所述容器中存在當前軌跡信息在先的繪制點時,在所述容器中合成所述在先繪制點和當前繪制點。
[0030]優(yōu)選的,所述渲染模塊進一步包括:
[0031]選取子模塊,用于選取軌跡信息中的任一當前繪制點作為目標點;
[0032]生成子模塊,用于對所述目標點進行渲染,生成渲染模板;
[0033]模板復制子模塊,用于對軌跡信息中目標點之外的點,采用所述渲染模板進行復制。
[0034]優(yōu)選的,所述寫入模塊進一步包括:
[0035]緩存生成子模塊,用于在容器中生成一個與渲染后的繪制點同樣大小的緩存buffer ;
[0036]緩存復制子模塊,用于將渲染后的繪制點復制到對應的緩存buffer中。
[0037]優(yōu)選的,所述預設條件包括:預設的時間間隔,檢測到結(jié)束提筆;所述容器包括:第一容器,第二容器;
[0038]所述寫入模塊還進一步包括:
[0039]第一寫入子模塊,用于當按照預設的時間間隔進行渲染時,渲染后的繪制點寫入預置的第一容器。
[0040]第二寫入子模塊,用于當檢測到結(jié)束提筆進行渲染時,若所述第一容器中存在當前軌跡信息在先的繪制點時,則將渲染后的當前繪制點寫入預置的第一容器中;
[0041]第三寫入子模塊,用于當檢測到結(jié)束提筆進行渲染時,若所述第一容器中不存在當前軌跡信息在先的繪制點時,則將渲染后的當前繪制點寫入預置的第二容器中。
[0042]優(yōu)選的,當檢測到結(jié)束提筆時,渲染后的當前繪制點與第一容器中的當前軌跡信息在先繪制點進行合成;
[0043]所述裝置還包括:
[0044]移動模塊,用于將結(jié)束提筆時合成的當前軌跡信息的繪制點從所述第一容器移動至所述第二容器;
[0045]第二合成模塊,在所述第二容器中合成所述當前的軌跡信息和在先的軌跡信息。
[0046]本申請實施例包括以下優(yōu)點:
[0047]本申請實施例通過在多筆筆觸繪制的時候,將當前正在畫的筆觸之外的筆觸緩存起來,避免了重復渲染。
[0048]在當前筆觸繪制的時候,將已經(jīng)畫的一部分也緩存起來,避免重復渲染,提高效率。
[0049]對于當前筆觸,不用逐個渲染,而是選取一個點生成一個模板,根據(jù)筆觸每個點所在的位置信息逐個去復制這個模板。
【附圖說明】
[0050]圖1是本申請的一種軌跡生成方法實施例的步驟流程圖;
[0051]圖2是本申請的一種軌跡生成方法實施例的步驟流程圖;
[0052]圖3是本申請的一軌跡生成裝置實施例的結(jié)構框圖。
【具體實施方式】
[0053]為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本申請作進一步詳細的說明。
[0054]本申請實施例的核心構思之一在于,當前筆觸繪制時,將已渲染的部分緩存在容器中,在容器中將已渲染的各部分進行合成,避免對筆觸的各部分重復渲染。
[0055]參照圖1,示出了本申請的一種軌跡生成方法實施例的步驟流程圖,具體可以包括如下步驟:
[0056]步驟101,接收當前輸入的繪制點形成的軌跡信息;
[0057]步驟102,按照預設條件將已輸入的當前繪制點進行渲染;
[0058]步驟103,將渲染后的當前繪制點寫入預置的容器中;
[0059]步驟104,當所述容器中存在當前軌跡信息在先的繪制點時,在所述容器中合成所述在先繪制點和當前繪制點。
[0060]筆觸的是多個點組成的,在按下鼠標左鍵至松開左鍵期間,鼠標拖動產(chǎn)生的一連串的點,組成筆觸的點產(chǎn)生后還要對其進行渲染,筆觸才算繪制完成,即筆觸的繪制過程可以定義為:鼠標拖動,然后,渲染。
[0061]當筆觸繪制時,接收當前輸入的繪制點形成的軌跡信息,軌跡信息即筆觸。在本申請實施例中,按照預設條件將已輸入的當前繪制點進行渲染,而不是在每一個點生成時都進行渲染。渲染完成后,將渲染后的當前繪制點寫入預置的容器中。其中,寫入的步驟可以包括:
[0062]子步驟S11,在容器中生成一個與渲染后的繪制點同樣大小的緩存buffer ;
[0063]子步驟S12,將渲染后的繪制點復制到對應的緩存buffer中。
[0064]具體為對接收到的當前輸入的繪制點會分配一個索引號,在渲染后,根據(jù)繪制點的大小生成同樣大小的緩存buffer,并且為緩存分配一個與索引號對應的表計量,這樣就能將渲染的筆觸和緩存buffer對應起來。繪制點的大小可以通過包圍盒的來確定。緩存建立后將渲染后的繪制點復制到對應的緩存中。
[0065]容器具體可以為Map類