Skip to main content

Questions tagged [software-rendering]

Software rendering refers to a rendering process that is unaided by any specialized graphics hardware.

Filter by
Sorted by
Tagged with
3 votes
0 answers
307 views

Avoiding z-fighting when reimplementing Freescape games

I need to avoid z-fighting in exactly co-planar surfaces that are too close to the other solids. I'm re-implementing the Freescape engine in ScummVM (all my code is open-source, available here), and ...
Gustavo Grieco's user avatar
0 votes
0 answers
43 views

texture in perspective by vertices not interpolation

I am writing a software renderer with allegro5, but without using its own triangle drawing functions, I use the al_draw_prim function to draw the triangles but with all the z coordinates at zero, the ...
Ivan Rojas's user avatar
1 vote
1 answer
191 views

What's the purpose of this cross product and dot product in triangle clipping code?

I have this code that inserts a triangle into the drawing list. The PHD_VBUF structure stores one x,y,z vertex. If the vertex is behind the front plane, then ...
black4's user avatar
  • 215
1 vote
1 answer
166 views

Determine if a triangle is on the screen

I am working on a small software renderer, and I want to discard invisible triangles from the drawing process. Let's say I have a screen with resolution of 200x100 pixels. The triangle is defined with ...
Netherwire's user avatar
0 votes
1 answer
324 views

What's the difference between Unity3D rendering pipeline and OpenGL rendering pipeline?

I wanted to write small software renderer that will follow almost the same flow as OpenGL does, but got stuck with understanding of the rendering pipeline. After reading tons of info across the ...
Yurii B's user avatar
1 vote
2 answers
234 views

I'm following a tutorial but I don't get the same result; why are the raytraced shadows not working?

I followed this tutorial called "Ray Tracing in One Weekend" by Peter Shirley. And I implemented the java version of it for studying Ray Tracing. Everything was all right until Diffuse ...
Whatssuppp's user avatar
0 votes
2 answers
91 views

Rendering to BufferStrategy gives absolutely no output despite following instructions

I am following this YouTube tutorial by TheCherno to make 3D graphics using Java Standard Library. Display.java ...
Aritro Shome's user avatar
1 vote
1 answer
578 views

How to sort polygons without a depth buffer

Please help me getting understanding how did they sort polygons in old games from the eighties. They did not use z-buffer or anything like this, thats for sure. Please look at the screenshot. How ...
fitnezz's user avatar
  • 11
3 votes
2 answers
2k views

How does cube mapping work?

Based on my reading of cube mapping tutorials so far, my understanding is that you need a direction vector, and from the direction vector we can determine the point of intersection with one of the six ...
BunnyDhaliwal's user avatar
1 vote
1 answer
101 views

Function to draw an image inside a rectangle

How can I draw an image inside a rectangle? I am introducing myself in the manipulation of images for games, I have a window and inside there is a rectangle that deforms. I would like to fill the ...
molo32's user avatar
  • 111
0 votes
1 answer
593 views

View "distortion" or "stretching" when looking up/down? (Software renderer)

I'm not sure distortion is the right way to describe this. I've uploaded a video to show you guys. Apologies if it's long, but I wanted to show the code as well as posting it here. https://youtu.be/...
vexe's user avatar
  • 332
0 votes
1 answer
858 views

Software and Hardware Rendering

From what I understand, the main difference between software rendering and hardware rendering is that in software rendering you use the CPU to determine what to color each pixel, and in hardware ...
user3567004's user avatar
0 votes
1 answer
384 views

How to map intensity from dot product to float RGB from 0 to 1?

I'm getting the dot product of the surface normal and light position. The weird thing is the dot product is larger than 1. Also, I want to map that intensity from 0->1 to Float RGB from 0->1. Here is ...
Andre Ahmed's user avatar
2 votes
1 answer
523 views

Isometric painter's algorithm problem

Note: I dont use tiles, I use 3D Polygons :) I'm currently working on a real-time renderer for scanned real life objects. My main goal is to have an isometric viewer with the simple ability to rotate ...
KoalaGangsta's user avatar
1 vote
0 answers
150 views

Perspective correct interpolation of normal values

I'm currently writing a software rasterizer and I'm at the point where I can draw arbitrary triangles with vertex colors and perspective correct texture mapping. I do point and directional lighting by ...
lelgetrekt's user avatar
0 votes
1 answer
214 views

Batching in Java (software rendering)

I've watched some tutorials on java game development and when they start using spritesheets all they do is get a subimage out of the spritesheet and create a new BufferedImage out of that. Does java ...
user avatar
12 votes
2 answers
1k views

Details of what GPU actually do when clipping in 4D homogeneous space?

I am learning programmable rendering pipeline by implementing a tiny software renderer. I try to implement it in a 'hardware' style. However, I am not familiar with the GPU pipeline and got some ...
stanleyerror's user avatar
26 votes
8 answers
13k views

What advantage do OpenGL, SFML and SDL have over software rendering?

I started watching the Handmade Hero stream, where Casey Muratori creates a game engine without using frameworks or such. Yesterday I got to the part where he showed how an image is drawn onto the ...
user148013's user avatar
1 vote
0 answers
120 views

Techniques of graphics rendering with single CPU core? [closed]

I am interested in methods of 2d and 3d rendering using single thread on an average CPU (e.g. for programming games for old and low-end PCs). While I usually have no performance problems when using ...
interphx's user avatar
  • 395
0 votes
1 answer
2k views

How can I rasterize 3D triangles in software?

I am creating a 3D software renderer, and I have a wire frame cube rendering. Now I am working on solid color rendering and I am wondering what an efficient algorithm for shading the contents of the ...
Hyden's user avatar
  • 113
6 votes
2 answers
2k views

Best way of writing pixel manipuliting-intensive applications with OpenGL/Direct3D

Recently I have been making little experiments with engines similar to old Wolfenstein 3D, Doom and Build, engines where the 3D rendering is entirely done in software and therefore you need full ...
J.A. Rubio's user avatar
3 votes
1 answer
1k views

What is FOVx in this diagram?

a beginner game developer here. I have recently taken upon learning about 3D game development and I am stuck on a simple matrix problem. The image is found from this article: http://www.codinglabs....
toshko3331's user avatar
8 votes
2 answers
5k views

Pure OpenGL software rendering

For training a machine learning algorithm, we need to render some geometry in OpenGL without any hardware rendering support (no graphics card). So we were thinking of rendering in pure software, and ...
Gab's user avatar
  • 181
1 vote
1 answer
320 views

projection / view matrix: the object is bigger than it should and depth does not affect vertices [closed]

I'm currently trying to write a C 3D software rendering engine from scratch just for fun and to have an insight on what OpenGL does behind the scene and what 90's programmers had to do on DOS. I have ...
Francesco Noferi's user avatar
7 votes
3 answers
6k views

What is Windows' software rendering API?

We usually use OpenGL or DirectX to work with the GPU. If I want to use the CPU to render 2D/3D graphics, how does it work and what API can I use for it on Windows? I know there is no benefit in ...
Gustavo Piucco's user avatar
16 votes
4 answers
52k views

Why would you use software rendering over hardware rendering, today?

As opposed to CPU or software rendering I assume? Wouldn't generally all current rendering be GPU based, seeing as you would be using OpenGL or Direct X? Could someone give me some info here, can't ...
user3333072's user avatar
5 votes
1 answer
1k views

UV interpolation is wrong with a wide FOV

How should I take FOV into account when interpolating UV coordinates? This picture shows the result today. Everything works fine with a narrow fov, but when I make it really wide, things deviate. The ...
Markus Jevring's user avatar
1 vote
1 answer
303 views

How can I programatically determine if I can create a hardware D3D device?

I have a D3D 11 application to which I would like to add support for software rendering. This is because in some circumstances it will be run on over remote desktop or on machines without GPUs. From ...
Justin R.'s user avatar
  • 199
3 votes
1 answer
1k views

How does the Direct3D 9 rasterizer determine triangle coverage?

I'm working on a software rasterizer to use in my project. I have implemented one that works well, however, often my rasterizer under or overestimates triangle coverage. I need perfect emulation of ...
P. Avery's user avatar
  • 575
6 votes
1 answer
3k views

How does a segment-based rendering engine (as in Descent) work?

As far as I know Descent was one of the first games that featured a fully 3D environment, and it used a segment based rendering engine. Its levels are built from cubic segments (these cubes may be ...
Calmarius's user avatar
  • 661
2 votes
2 answers
583 views

How scanline rendering finds an intersection with an object

I'm a newbie with graphics and after I read many articles on the web I still don't understand how in rasterizing from a pixel coordinate like (0;0) on the screen the intersection with an object (let's ...
Paul's user avatar
  • 23
2 votes
2 answers
518 views

Is there a 3d animation software that prioritizes working with code rather than GUI? [closed]

All of the 3D animating softwares I've faced are centered around using GUI to work: windows, menus, mouse clicks, mouse adjustments, keyboard shortcuts. As a programmer, I find that limiting. In order ...
MaiaVictor's user avatar
  • 1,180
1 vote
1 answer
1k views

backface culling error (in world space)

I write simple software renderer. In my pipeline I have stage of backface culling. But looks like it has some error. I perform culling right after world transformation (is it correct?). ...
acrilige's user avatar
  • 123
1 vote
1 answer
2k views

Fast software color interpolating triangle rasterization technique

I'm implementing a software renderer with this rasterization method, however, I was wondering if there is a possibility to improve it, or if there exists an alternative technique that is much faster. ...
toby's user avatar
  • 176
2 votes
2 answers
3k views

Software rendering 3d triangles in the proper order

I'm implementing a basic 3d rendering engine in software (for education purposes, please don't mention to use an API). When I project a triangle from 3d to 2d coordinates, I draw the triangle. However,...
at.'s user avatar
  • 171
7 votes
2 answers
3k views

UV texture mapping with perspective correct interpolation

I am working on a software rasterizer for educational purposes and I am having issues with the texturing. The problem is, only one face of the cube gets correctly textured. The rest are stretched ...
Spectraljump's user avatar
10 votes
1 answer
5k views

Depth interpolation for z-buffer, with scanline

I have to write my own software 3d rasterizer, and so far I am able to project my 3d model made of triangles into 2d space: I rotate, translate and project my points to get a 2d space representation ...
Spectraljump's user avatar
0 votes
1 answer
2k views

SDL and software/hardware rendering. How to go about it?

I know that SDL 1.2 does software rendering (CPU) and not hardware rendering (GPU). My question is, how do I use SDL but with hardware rendering? How do I not use its rendering API (software) and ...
hullot's user avatar
  • 41
1 vote
1 answer
190 views

Quake d_draw.s versus d_draw16.s

I decided to write my first Quake source port, but I'm a bit confused. There are 2 rasterization code files: d_draw.s and d_draw16.s. The first is, as John Carmack said, horizontal 8-bpp span-...
Triang3l's user avatar
  • 606
3 votes
2 answers
27k views

Forcing a game to use Direct3D WARP

I am making a study for a research project that involves measuring the performance and quality impact of rendering 3d games using a software rasterizer (like WARP). I wonder if there is a way to ...
cloudraven's user avatar
5 votes
2 answers
4k views

How does a BSP tree work for Z sorting?

I'm developing a 3D engine in software, and so I must compute Z sorting manually. I'm currently using the painter's algorithm to sort triangles and then drawing them back-to-front. This causes ...
Robin Rodricks's user avatar
15 votes
3 answers
11k views

How is software rendering done?

I would like to explore realtime software based rasterization. I know everything is going towards the GPU these days but there are a few games where it still makes sense to use a software renderer. ...
Mike's user avatar
  • 153