x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Anti Aliasing problem on using Scene Capture Component 2D

Hello, I'm trying to get 3D View of a static mesh using 2D Scene Capture Component. I am making a 3D Object viewer in my widget blueprint. When i rendering in my widget i got some AA problem. 3D in my Widget

Seems like this:

Thats my rendering Material for My Widget: ScreenShoot2

NOTE: I tried to change CaptureSource to LDR but in this way I can't see anything on my widget blueprint

Product Version: UE 4.15
Tags:
screenshot_1.png (79.1 kB)
more ▼

asked Apr 12 '17 at 09:17 PM in Rendering

avatar image

Khubur
145 7 11 13

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

5 answers: sort voted first

Render Targets don't support Anti-Aliasing, so there's nothing you can do about it unfortunately.

Daniel Wright (Engine Graphics Programmer) has mentioned in the past that this is actually a relatively easy fix, and that there might already be a fix for it in Master branch already. I haven't tested to see if that's the case though.

more ▼

answered May 10 '17 at 10:40 AM

avatar image

TheJamsh
815 57 96 140

avatar image pqn Jun 26 '17 at 09:29 PM

Has there been any update on this?

avatar image Greg G Oct 18 '17 at 11:37 PM

I'm using 4.17.2. Still aliasing. Any update?

avatar image sleepdown Jun 25 '18 at 02:05 AM

4.19 Still aliasing. Any update?

avatar image Juangea Oct 09 '18 at 09:31 AM

Any updates regarding Scene Capture antialiasing?

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

I do the exact same thing, for your image on your umg scene, is the size of your image the exact size of your render target texture?

also on my scene capture component, what source are you using? I'm using "Normal in RGB (Deferred Renderer only)

how are you isolating this? are you using a green/blue screen or are you using "show only actors"

more ▼

answered Apr 12 '17 at 09:24 PM

avatar image

BPANDREW
995 22 26 125

avatar image Khubur Apr 13 '17 at 01:29 PM

alt text alt text alt text

Thats how I figure out system. These are my settings. I use ScenceColorHDR in RGB, Inv Opacity in A. But somehow i never get exact result when im trying to get.

screenshot_3.png (52.3 kB)
screenshot_4.png (20.7 kB)
screenshot_5.png (55.9 kB)
(comments are locked)
10|2000 characters needed characters left
Viewable by all users

If you use the capture component to generate a static texture once (not every frame), you could write your own AA in C++. I did this for generating icons, I use a 1024*1024 render target and I downsample it using a kernel size of 8. This gives me very smooth anti aliased icons :)

 TArray<FColor> UBbLevelMakerUtils::DownsampleTextureData(TArray<FColor>& Data, int32 Width, int32 Kernel)
 {
     int32 Len = Data.Num();
     int32 W = Width;
     TArray<FColor> Downsampled;
     Downsampled.Init(FColor(), Len / (Kernel * Kernel));
     
     int32 Row = 0;
     for (int32 i = 0; i < Downsampled.Num(); i++)
     {
         TArray<FColor> KernelColors;
         KernelColors.Init(FColor(0, 0, 0, 255), Kernel * Kernel);
 
         int32 KernelIndex = i * Kernel;
         if (KernelIndex % W == 0 && i != 0)
         {
             Row++;
         }
 
         KernelIndex += Row * W * (Kernel - 1);
 
         for (int32 k = 0; k < Kernel; ++k)
         {
             for (int32 kr = 0; kr < Kernel; ++kr)
             {
                 int32 c = KernelIndex + k + (W * kr);
                 if (c > 0 && c < Len)
                 {
                     KernelColors[k * Kernel + kr] = Data[c];
                 }
             }
         }
 
         int32 AvR = 0;
         int32 AvG = 0;
         int32 AvB = 0;
         int32 AvA = 0;
         for (int32 j = 0; j < KernelColors.Num(); ++j)
         {
             AvR += KernelColors[j].R;
             AvG += KernelColors[j].G;
             AvB += KernelColors[j].B;
             AvA += KernelColors[j].A;
         }
         
         FColor KernelAvarage;
         KernelAvarage.R = (uint8)(AvR / KernelColors.Num());
         KernelAvarage.G = (uint8)(AvG / KernelColors.Num());
         KernelAvarage.B = (uint8)(AvB / KernelColors.Num());
         KernelAvarage.A = (uint8)(AvA / KernelColors.Num());
         Downsampled[i] = KernelAvarage;
     }
 
     return Downsampled;
 }


Note that this is supersampling and it's quite heavy so it's not really a good solution if you want the texture to update every frame.

more ▼

answered Jul 17 '18 at 03:23 PM

avatar image

92Rob
98 1 3 8

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Anyone has overcome this problem somehow?

more ▼

answered Jan 22 '19 at 01:15 PM

avatar image

Kadej
1

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

You could do sobel edge detection and use it as a mask for blur, with small kernel size this would be fast enough for real time and small enough to build entirely inside material editor

more ▼

answered Mar 09 '19 at 01:29 PM

avatar image

Mikiok
56 3 8 16

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question